【ACM】杭電OJ 1013
阿新 • • 發佈:2018-11-08
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; }