Computer >> Máy Tính >  >> Lập trình >> C ++

Tổng đệ quy các chữ số của một số được tạo thành bởi các phần nối lặp lại trong C ++

Cho hai số nguyên "number" và "repeat" làm đầu vào. Mục đích là để tính tổng các chữ số của số đầu vào được lặp lại số lần ‘lặp lại’ cho đến khi tổng trở thành một chữ số duy nhất. Làm điều này cho đến khi số thu được có tổng các chữ số trở thành số có một chữ số. Nếu số đầu vào là 123 và lặp =2 thì tổng các chữ số của 123123 sẽ là 1 + 2 + 3 + 1 + 2 + 3 =12 mà không phải là số có một chữ số. Bây giờ tổng các chữ số của 12 là 1 + 2 =3. Đầu ra sẽ là 3

Hãy để chúng tôi xem các kịch bản đầu ra đầu vào khác nhau cho việc này

Đầu vào - số =32 lặp lại =3

Đầu ra - Tổng đệ quy các chữ số của một số được tạo thành bởi các cấp số lặp lại là:6

Giải thích - Tổng các chữ số của 323232 là 3 + 2 + 3 + 2 + 3 + 2 =15 và tổng các chữ số của 15 là 1 + 5 =6. 6 là một số có một chữ số nên đầu ra sẽ là 6.

Đầu vào - số =81 lặp lại =4

Đầu ra - Tổng đệ quy các chữ số của một số được tạo thành bởi các cấp số lặp lại là:9

Giải thích - Tổng các chữ số của 81818181 là 1 + 8 + 1 + 8 + 1 + 8 + 1 + 8 =36 và tổng các chữ số của 36 là 3 + 6 =9. 9 là số có một chữ số nên đầu ra sẽ là 9.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Khai báo hai biến kiểu số nguyên là số và lặp. Truyền dữ liệu vào hàm dưới dạng Recursive_Sum (số, lặp lại).

  • Bên trong hàm dưới dạng Recursive_Sum (int number, int repeat)

    • Khai báo một biến số nguyên là tổng và đặt nó bằng một lặp lại * sum (số);

    • Trả lại lời gọi hàm dưới dạng sum (tổng).

  • Bên trong hàm dưới dạng sum (số int)

    • Kiểm tra số IF là 0 rồi trả về 0.

    • Kiểm tra NẾU số% 9 là 0 rồi trả về 9.

    • ELSE, trả về số% 9

  • In kết quả.

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra Kết quả sau

Recursive sum of digits of a number formed by repeated appends is: 3