La recherche de 1 + 2 + ... + n nécessite que des mots-clés et des conditions tels que la multiplication et la division, pour, tandis que, si, sinon, changez, la casse ne peut pas être utilisé (A? B: C)

1. Trouvez 1 + 2 + ... + n, ce qui nécessite que des mots-clés et des conditions tels que la multiplication et la division, pour, tandis que, si, sinon, changez, la casse ne peut pas être utilisé (A? B: C).
Exemple 1:

Entrée: n = 3
Sortie: 6
Exemple 2:

Entrée: n = 9
Sortie: 45

2. Affichage du code

int sumNums(int n)
{
   n&&(n+=sumNums(n-1));
   return n;
}

3. Analyse de la pensée
Selon les exigences du sujet, nous réalisons l'addition par récursivité, mais compte tenu de la condition de terminaison, il peut être nécessaire d'utiliser si le jugement, alors voici l'utilisation intelligente des caractéristiques de l'opérateur &&, lorsque le côté gauche est établi, puis calculer le côté droit, juste pour atteindre la condition de terminaison Jugement.
Au départ, je voulais implémenter le calcul par formule, mais je n'ai pas trouvé l'opération de multiplication.

Addition
sans report a ^ b
avec report a & b << 1
a ^ b + (a & b) << 1
soustraction-a
= ~ a + 1;
ba = b + (~ a + 1)
applique directement l'addition ci-dessus.

Publié 84 articles originaux · a gagné les éloges 6 · vues 4725

Je suppose que tu aimes

Origine blog.csdn.net/qq_41152046/article/details/105479771
conseillé
Classement