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