比如你输入的数是12321:
循环开始前:m=12321,sum=0;
第1次循环结束:m=1232,sum=1;
第2次循环结束:m=123,sum = 12;
第3次循环结束:m=12,sum=123;
第4次循环结束:m=1,sum=1232;
第5次循环结束:m=0,sum=12321。
输入的是几位数就循环几次。
判断的思路就是,通过循环依次把m的个位,十位,百位...上的数取出来,与sum*10相加。这样得到的数sum就是m颠倒之后的数,如果两者相等,那就是回文数。
1 sum = 0; 2 for (i = n; i != 0; i /= 10) { 3 yu = i % 10; 4 sum = sum * 10 + yu; 5 } 6 if (sum == n){ 7 printf("是回文数"); 8 } else { 9 printf("不是回文数"); 10 }
时间: 2024-10-10 21:29:06