九度oj-1106

题目描述:

对于给定的正整数 n,计算其十进制形式下所有位置数字之和,并计算其平方的各位数字之和。

输入:

每行输入数据包括一个正整数n(0<n<40000),如果n=0 表示输入结束,并不用计算。

输出:

对于每个输入数据,计算其各位数字之和,以及其平方值的数字之和,输出在一行中,之间用一个空格分隔,但行末不要有空格。

样例输入:

4
12
97
39999
0

样例输出:

4 7
3 9
16 22
39 36

代码:

#include <iostream>  
using namespace std;  
int main()  
{  
    int n1,n2;  
    int sum1,sum2;  
    while(cin>>n1 && n1)  
    {  
        n2=n1*n1;              //数取平方  
        sum1=0,sum2=0;  
        while(n1>0)            //分离各位并求和  
        {  
            sum1+=(n1%10);  
            n1/=10;  
        }  
        while(n2>0)  
        {  
            sum2+=(n2%10);  
            n2/=10;  
        }  
        cout<<sum1<<" "<<sum2<<endl;  
    }  
    return 0;  
}