ZOJ 1115

看完题,感觉好简单,代码一遍敲下来,测试通过,提交却是WA。

 

上网搜了一下,发现大家都是来处理字符串,才发现可能有很大的整数,一个int放不下。

 

改用string,OK。

 

// may the input string will be long ,and then 'int' is not long enough #include<iostream> #include<string> using namespace std; int digitroot( int a) { int dr = 0; while( a > 0) { dr += a%10; a /= 10; } if( dr > 9) return digitroot( dr); return dr; } int main(void) { string s; while( cin >> s && s[0] != '0' ) { int a = 0; for( int i=0; i< s.length(); i++) a += s[i]-'0'; cout<<digitroot( a)<<endl; } ret

你可能感兴趣的:(ZOJ 1115)