1. 程式人生 > >HDU oj 數字根源

HDU oj 數字根源

描述

。通過對整數的數字求和來找到正整數的數字根如果結果值是單個數字,則該數字是數字根。如果結果值包含兩個或更多個數字,則對這些數字求和並重復該過程。只要需要獲得一位數,這就會繼續。

例如,考慮正整數24.加上2和4得到值6.由於6是單個數字,6是24的數字根。現在考慮正整數39.加上3和9的收益率12.由於12不是一個數字,因此必須重複該過程。新增1和2 yeilds 3,單個數字以及39的數字根。

 

輸入

輸入檔案將包含一個正整數列表,每行一個,輸入的結尾將由整數值零表示。

 

產量

對於輸入中的每個整數,在輸出的單獨行上輸出其數字根。

 

樣本輸入

 

 

樣本輸出

 

 

 

 

#include<iostream>
using namespace std;
int main() {
	char str[10000];
	while (cin>>str) {
		int answer = 0;
		if (strcmp(str, "0") == 0) {
			break;
		}
		int len = strlen(str);
		for (int i = 0; i < len; i++) {
			answer += str[i] - '0';
		}
		while (answer >= 10) {//是大於等於,不是隻有大於
			int temp = answer;
			answer = 0;//歸零
			while (temp > 0) {
				answer += temp % 10;
				temp /= 10;
			}
		}
		printf("%d\n", answer);
	}

	return 0;
}