On nous donne des variables entières positives "num" et "x". La tâche consiste à calculer de manière récursive num ^ x, puis à ajouter les chiffres des nombres résultants jusqu'à ce qu'ils atteignent un chiffre, les chiffres résultants seront donnés en sortie.
Entrée − int num = 2345, int x = 3
Sortie − Somme récursive ^x des nombres dans n , où n et x sont très grands : 8
Explication− On nous donne des valeurs entières positives num et x avec la valeur 2345 et la puissance 3. Tout d’abord, calculez 2345^3, soit 12 895 213 625. Maintenant, nous additionnons ces nombres, qui sont 1 + 2 + 8 + 9 + 5 + 2 + 1 + 3 + 6 + 2 + 5, soit 44. Nous allons maintenant ajouter 4 + 4, ce qui fait 8. Puisque nous avons atteint un chiffre, le résultat est 8.
Entrée− int num = 3, int x = 3
Sortie − Somme récursive des nombres dans n^x, où n et x sont très grands : 9
Explication− On nous donne des entiers positifs Les valeurs num et x, la valeur est 3 et la puissance est 3. Calculez d'abord 3^3, soit 9. Puisque nous avons déjà les chiffres à un chiffre, le résultat est 9 et aucun autre calcul n’est nécessaire.
Entrez les variables entières num et x et transmettez les données à la fonction Recursive_Digit(num, x) pour un traitement ultérieur.
déclarez la variable 'total' aussi longue et configurez-la pour appeler la fonction total_digits(num) qui renverra la somme numérique des nombres passés en arguments.
Déclarez la variable comme temp de type long et définissez-la avec un % de puissance de 6
Vérifiez SI Total = 3 OU Total = 6 ET puissance > 1 et renvoyez 9.
ELSE SI, puissance = 1, puis renvoie Total.
ELSE SI, puissance = 0 et retour 1.
ELSE IF, temp - 0 Puis revenez en appelant total_digits((long)pow(total, 6))
Sinon, retournez total_digits((long)pow(total, temp)).
Fonction interne long Total_digits(long num)
vérifie SI num = 0 et renvoie 0. Vérifiez SI, num % 9 = 0 et renvoyez 9.
Sinon, renvoie num % 9
#include <bits/stdc++.h> using namespace std; long total_digits(long num){ if(num == 0){ return 0; } if(num % 9 == 0){ return 9; } else{ return num % 9; } } long Recursive_Digit(long num, long power){ long total = total_digits(num); long temp = power % 6; if((total == 3 || total == 6) & power > 1){ return 9; } else if (power == 1){ return total; } else if (power == 0){ return 1; } else if (temp == 0){ return total_digits((long)pow(total, 6)); } else{ return total_digits((long)pow(total, temp)); } } int main(){ int num = 2345; int x = 98754; cout<<"Recursive sum of digit in n^x, where n and x are very large are: "<<Recursive_Digit(num, x); return 0; }
Si nous exécutons le code ci-dessus, il générera la sortie suivante
Recursive sum of digit in n^x, where n and x are very large are: 1
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!