例:用户输入一个数,判断是否为回文数。
回文数:设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数,例如:121,12321
代码示例
#include<stdio.h>
int main(void){
int num;
int n;
int sum = 0;
printf("请输入需要判断的数字:");
scanf("%d",&num);
n = num;
while(n){
sum = sum*10 n;
n /= 10;
}
if(sum == num){
printf("%d是回文数\n",num);
}
else{
printf("%d不是回文数\n",num);
}
return 0;
}
(1)n=256,while循环成立
sum=0*10 256=6
n=n/10=256/10=25
(2)n=25,while循环成立
sum=6*10 25=65
n=n/10=25/10=2
(3)n=2,while循环成立
sum=65*10 2=652
n=n/10=2/10=0
(4)n=0,while循环不成立,结束循环,此时sum的值为652
while循环执行完毕,执行if语句判断
(1)if(sum == num),此时sum=652,num=256,因此if不成立,输出256不是回文数
运行结果2.测试数字121,执行while循环
(1)n=121,while循环成立
sum=0*10 121=1
n=n/10=121/10=12
(2)n=12,while循环成立
sum=1*10 12=12
n=n/10=12/10=1
(3)n=1,while循环成立
sum=12*10 1=121
n=n/10=1/10=0
(4)n=0,while循环不成立,结束循环,此时sum=121
while循环执行完毕,执行if语句
(1)if(sum==n),此时sum=121,n=121,因此if成立,打印输出121是回文数
运行结果总结
(1)利用while循环以此拆分数字,进行累加。
(2)利用if语句对输入的数字,和拆解后累加的数字进行判断。
(3)利用取余(%),除法(/)对数字进行拆解累加。
,