양의 정수 변수 "num"과 "x"가 주어졌습니다. 작업은 num^x를 재귀적으로 계산한 다음 결과 숫자의 숫자가 한 자리에 도달할 때까지 더하는 것입니다. 결과 한 자리는 출력으로 제공됩니다.
Input − int num = 2345, int x = 3
Output − n에 있는 숫자의 재귀적 합 ^x, 여기서 n과 x는 매우 큽니다. : 8
Explanation− 값이 2345이고 거듭제곱이 3인 양의 정수 값 num 및 x가 주어졌습니다. 먼저 2345^3, 즉 12,895,213,625를 계산하세요. 이제 이 숫자를 더하면 1 + 2 + 8 + 9 + 5 + 2 + 1 + 3 + 6 + 2 + 5, 즉 44가 됩니다. 이제 4 + 4를 더해 8이 됩니다. 한 자릿수에 도달했으므로 출력은 8입니다.
Input− int num = 3, int x = 3
Output − n과 x가 매우 큰 n^x에 있는 숫자의 재귀적 합: 9
Explanation− 양의 정수가 주어집니다. num 및 x 값, 값은 3이고 거듭제곱은 3입니다. 먼저 3^3을 계산하면 9가 됩니다. 이미 한 자리 숫자를 얻었으므로 출력은 9이고 더 이상 계산이 필요하지 않습니다.
정수 변수 num과 x를 입력하고 추가 처리를 위해 데이터를 Recursive_Digit(num, x) 함수에 전달합니다.
변수 'total'을 길게 선언하고 인수로 전달된 숫자의 숫자 합계를 반환하는 total_digits(num) 함수를 호출하도록 설정합니다.
변수를 long 유형의 temp로 선언하고 6의 % 거듭제곱으로 설정합니다.
IF Total = 3 OR Total = 6 AND power > 1을 확인하고 9를 반환합니다.
ELSE IF, 거듭제곱 = 1이면 합계를 반환합니다.
ELSE IF, power = 0이고 1을 반환합니다.
ELSE IF, temp - 0 그런 다음 total_digits((long)pow(total, 6))
호출을 반환하고 그렇지 않으면 total_digits((long)pow(total, temp))를 반환합니다.
내부 함수 long Total_digits(long num)
은 IF num = 0인지 확인하고 0을 반환합니다. IF, num % 9 = 0을 확인하고 9를 반환합니다.
그렇지 않으면 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; }
위 코드를 실행하면 다음과 같은 출력이 생성됩니다
Recursive sum of digit in n^x, where n and x are very large are: 1
위 내용은 C++를 사용하여 구현된 n^x의 숫자 합을 재귀적으로 찾습니다. 여기서 n과 x는 모두 매우 큽니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!