두 개의 정수 '숫자'와 '반복'이 입력으로 주어집니다. 목표는 합이 한 자릿수가 될 때까지 '반복'회 반복되는 입력 숫자의 자릿수 합을 계산하는 것입니다. 자릿수의 합으로 얻은 숫자가 한 자리 숫자가 될 때까지 이것을하십시오. 입력된 숫자가 123이고 repeat=2인 경우 123123의 자릿수의 합은 한 자릿수가 아닌 1+2+3+1+2+3=12가 됩니다. 이제 12의 자릿수의 합은 1+2=3입니다. 출력은 3
이 됩니다.이를 위한 다양한 입력 출력 시나리오를 살펴보겠습니다.
입력 - 숫자=32 반복=3
출력 − 반복되는 추가에 의해 형성된 숫자의 재귀적 합은 다음과 같습니다. 6
설명 − 323232의 자릿수의 합은 3+2+3+2+3+2=15이고 15의 자릿수의 합은 1+5=6입니다. 6은 한 자리 숫자이므로 출력은 6이 됩니다.
입력 - 숫자=81 반복=4
출력 − 반복된 추가에 의해 형성된 숫자의 재귀적 합은 다음과 같습니다. 9
설명 − 81818181의 자릿수의 합은 1+8+1+8+1+8+1+8=36이고 36의 자릿수의 합은 3+6=9입니다. 9는 한 자리 숫자이므로 출력은 9가 됩니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
두 개의 정수형 변수를 숫자로 선언하고 반복합니다. 함수에 데이터를 Recursive_Sum(숫자, 반복)으로 전달합니다.
-
함수 내부에서 Recursive_Sum(int number, int repeat)
-
정수 변수를 total로 선언하고 repeat * sum(number);
으로 설정 -
함수에 대한 호출을 sum(total)으로 반환합니다.
-
-
함수 내부에서 sum(int number)
-
IF 번호가 0인지 확인한 다음 0을 반환합니다.
-
IF 번호 % 9가 0인지 확인한 다음 9를 반환합니다.
-
ELSE, 반환 번호 % 9
-
-
결과를 인쇄하십시오.
예시
#include <bits/stdc++.h> using namespace std; int sum(int number){ if(number == 0){ return 0; } if(number % 9 == 0){ return 9; } else{ return number % 9; } } int Recursive_Sum(int number, int repeat){ int total = repeat * sum(number); return sum(total); } int main(){ int number = 12; int repeat = 4; cout<<"Recursive sum of digits of a number formed by repeated appends is: "<<Recursive_Sum(number, repeat); return 0; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다.
Recursive sum of digits of a number formed by repeated appends is: 3