实训3回文数

/*任03.特殊数据获取

1、实训目的
学会模块化编程方法
2、实训内容
(1)任务描述
编程实现:计算1~n之间的特殊数:
①回文数;②素数;③亲密数;④水仙花数。
(2)功能要求
①采用模块化程序设计方法,每个特殊数的计算用一个函数实现。
②主程序设计一个功能菜单,通过菜单调用各个子函数,格式如下:
0.退出
1.回文数
2.素数
3.亲密数
4.水仙花数
③设计并输出1~n之间的各种特殊数的判断与输出函数
(3)设计提示
亲密数,如果整数A的全部因子(包括1,不包括A本身)之和等于整数B,整数B的全部因子(包括1,不包括B本身)之和等于整数A,则称整数A与B为亲密数。*/
#include 
int main()
{
   yh();
}


 yh()
{
 int a, b;
 int sum=0;
 printf("输入一个数a:");
 scanf("%d", &a);
 b=a;
 while(a!=0)
 {
 sum = sum*10 + a%10;
 a /= 10;
 }
 if(b== sum)
 printf("yes\n");
 else
 printf("no\n");
 return 0;
}
/*原理:

任何一个数除以10的余数就是该数最后一位
任何一个数除以10的商就是排除掉最后一位后的数(因为 c++ 两个整数相除结果还是整数)

所以 ,一个数1234 就可以通过这种方法得到 1234
接下来对 123 进行同样的操作,就得到 123
接下来得到 12
接下来得到 01

整个过程是个循环,当商不是 0 的时候就一直这么干

每次拿到一个余数,都用来构造新数,新数=新数*10+余数

所以经过四次循环后,我们得到新数 4321 ,如果是回文,那么新数应该等于原数,否则,说明不是回文。*/

这里写图片描述

你可能感兴趣的:(实训3回文数)