C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++での繰り返しの追加によって形成された数値の桁の再帰的な合計


入力として2つの整数「number」と「repeat」が与えられます。目標は、合計が1桁になるまで、「繰り返し」回数繰り返される入力番号の桁の合計を計算することです。得られた桁数の合計が1桁になるまでこれを行います。入力番号が123でrepeat=2の場合、123123の桁の合計は1 + 2 + 3 + 1 + 2 + 3 =12になりますが、これは1桁の数値ではありません。これで、12の桁の合計は1 + 2=3になります。出力は3になります

このためのさまざまな入出力シナリオを見てみましょう

入力 −番号=32繰り返し=3

出力 −繰り返しの追加によって形成される数値の再帰的な合計は、次のとおりです。6

説明 −323232の桁の合計は3+ 2 + 3 + 2 + 3 + 2 =15であり、15の桁の合計は1 + 5=6です。 6は1桁の数字なので、出力は6になります。

入力 −番号=81繰り返し=4

出力 −繰り返しの追加によって形成される数値の再帰的な合計は、次のとおりです。9

説明 −81818181の桁の合計は1+ 8 + 1 + 8 + 1 + 8 + 1 + 8 =36であり、36の桁の合計は3 + 6=9です。 9は1桁の数字なので、出力は9になります。

以下のプログラムで使用されているアプローチは次のとおりです

  • 2つの整数型変数を数値として宣言し、繰り返します。データをRecursive_Sum(number、repeat)として関数に渡します。

  • Recursive_Sum(int number、int repeat)としての関数内

    • 整数変数をtotalとして宣言し、repeat * sum(number);

      で設定します。
    • 関数の呼び出しをsum(total)として返します。

  • 関数内でsum(int number)

    • IF番号が0であることを確認してから、0を返します。

    • IF番号%9が0であることを確認してから、9を返します。

    • それ以外の場合、戻り番号%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

  1. C++のアリコット数列

    アリコット数列 数列の特別なシーケンスです。シーケンスは番号自体から始まり、シーケンスの次の番号は前の項の適切な除数の合計です。 概念をよりよく学ぶためにシーケンスの例を見てみましょう- 入力:8出力:8 7 1 0説明:8の適切な除数は4、2、1です。合計は7です。7の適切な除数は1です。合計は1です。1の適切な除数は0です。合計は0 完全数は、長さが1のアリコット数列を持つ数です。たとえば、6は完全数です。 友愛数は、長さが2のアリコット数列を持つ数です。たとえば、1は友愛数です。 社交数は、長さが3のアリコット数列を持つ数です。たとえば、7は社交数です。 数値からアリックシーケ

  2. 指定された数値の桁を合計するC++プログラム

    これは、C++言語で桁の合計を計算する例です。 例 #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {       s = s + x % 10;       x = x / 10;