2018計算導論とプログラム設計練習問題課九D.calc the sum

7000 ワード

最初はタイトルのnが10^100000だったのは間違いだと思っていたのですが・・・Pythonはこれを計算しても引っかかってしまいました・・・そうではなくて、本当にこんなに大きいのですが・・・100000の配列REをつけたので、100001は過ぎて、このデータが本当にこんなに長いことを説明しました・・・考え方:初めて文字配列で読み取って、数位とを得て、それからintタイプで処理します(全部9でも900000にすぎないので、intよりずっと小さいです.)その後のfurtherDecodeは再帰的に書くことができますが、そのfor(;n;n/=10)sum+=n%10は比較的簡潔な書き方だと思います.
#include 
int decode(char []);
int furtherDecode(int);
int main(int argc, char const *argv[])
{
     
	int i,t;
	char str[1000000];
	scanf("%d",&t);
	getchar();
	for(i=0;i<t;i++)
	{
     
		gets(str);
		printf("%d
"
,decode(str)); } return 0; } int decode(char str[]) { int i,sum=0; for(i=0;i<strlen(str);i++) sum+=str[i]-'0'; return furtherDecode(sum); } int furtherDecode(int n) { if(n<10) return n; else { int sum=0; for(;n;n/=10) sum+=n%10; return furtherDecode(sum); } }

テーマは遠いエゼラス大陸に描かれており、数字を崇拝する種族がいる.彼らは万物が数字で構成されており、すべての数字が最後に単独の数字になると考えている.例えば、数字1990、S(1990)=1+9+9+0=19、S(19)=10、S(10)=1である.ある日、彼らは廃墟から遠い昔の羊の皮の巻物を見つけた.そこにはびっしりと数字が書かれていて、族長は巻物が人種の未来を予言できると思っていた.しかし、彼らは巻物を解読できません.あなたは彼らを助けることができますか?
入力フォーマットは、最初は、データ群数を表す数字T(T<=10)である.次のT行は、行ごとに1つの数n.(n<=10^1000000)
出力フォーマットはT行を出力、行ごとに1つの数で、羊皮巻物の数に対応するデジタルを表す.入力サンプル1 5555出力サンプル2