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.