给定一个正整数,把它的各位数字上数字倒过来排列组成一个新数,然后与原数相加,如果是回文数则停止
给定一个正整数,把它的各位数字上数字倒过来排列组成一个新数,然后与原数相加,如果是回文数则停止
如果不是,则重复这个操作,直到和为回文数为止.
例如:87则有:
STEP1:87+78=165
STEP2:165+561=726
STEP3:726+627=1353
STEP4:1353+3531=4884
编写一个程序,输入一个数M(1
87
STEP1:87+78=165
STEP2:165+561=726
STEP3:726+627=1353
STEP4:1353+3531=4884
4 4884
Press any key to continue
#include
#include
#include
main()
{
int i,len,flag,cnt=1,num,numrev,addnum;
char str[20]={0},strRev[20]={0},hui[20]={0};
gets(str);
num=atoi(str);
strcpy(strRev,strrev(str));
numrev=atoi(strRev);
while (1)
{
addnum = num+numrev;
printf("STEP%d:%d+%d=%d\n",cnt,num,numrev,addnum);
itoa(addnum,hui,10);
len=strlen(hui);
flag=0;
for (i=0;i=30)
{
printf("0\n");
break;
}
num =addnum;
strcpy(strRev,strrev(itoa(num,str,10)));
numrev=atoi(strRev);
}
}有些地方不是很理解 ,可以给每一步加个注释吗?#include