WA代码
输入很大的数的时候会输出“-1”,所以考虑用字符数组来储存输入的数据。
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
long long sum;
long long fun (int n)
{
sum=0;
if(n<=9) return n;
while(n)
{
sum+=(n%10);
n/=10;
}
fun(sum);
}
int main ()
{
long long n,result;
while(scanf("%lld",&n)==1 && n)
{
result = fun(n);
cout<<result<<endl;
}
return 0;
}
AC代码:
在AC之前,因为n没有重新置为0,导致WA
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int maxn = 100000;
char num[maxn];
int main ()
{
int n,i,a,b;
while(scanf("%s",num)!=EOF)
{
n=0;
if(!strcmp(num,"0")) break;
i=0;
while(num[i])
{
n+=(num[i]-'0');
i++;
}
while(n>=10)
{
a=n%10;
b=n/10;
n=a+b;
}
cout<<n<<endl;
}
return 0;
}