数根
【问题描述】对于一个正整数n,我们将它的各个位相加得到一个新的数字,如果这个数字是一位数,我们称之为n的数根,否则重复处理直到它成为一个一位数,这个一位数也算是n的数根。例如:考虑24,2+4=6,6就是24的数根。考虑39,3+9=12,1+2=3,3就是39的数根。请编写程序,计算n的数根。例如:输入189输出9
【输入形式】一个正整数
【输出形式】一个个位数表示的数根
【样例输入】1234567
【样例输出】
1234567:7+6+5+4+3+2+1=28
28:8+2=10
10:0+1=1
1
#include<iostream>
using namespace std;
int main()
{
int n,t,sum=0,i,m;
cin>>n;
t=n;
while(t>0)
{
if(t/10==0)
{
cout<<t<<endl;
break;
}
cout<<t<<':';
for(i=1;i>0;i++)
{
m=t%10;
sum=sum+m;
t=t/10;
if(i==1)
cout<<sum;
else
cout<<'+'<<m;
if(t==0)
break;
}
t=sum;
cout<<'='<<sum<<endl;
sum=0;
}
return 0;
}
java代码:
package fuxi;
import java.util.Scanner;
public class W {
public static void main(String[] args)
{
int num;
int s=0,t;
Scanner sc=new Scanner(System.in);
num=sc.nextInt();
while(num>9){//至少是十位数
System.out.print(num+":");
while(num!=0)
{
t=num%10;
System.out.print(t+"+");
s+=t;
num=num/10;
}
System.out.println("="+s);//=28这行之后再换行往下走
num=s;
}
System.out.println(num);
}
}