/*任务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 <stdio.h>
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 就可以通过这种方法得到 123 和 4
接下来对 123 进行同样的操作,就得到 12 和 3
接下来得到 1 和 2
接下来得到 0 和 1
整个过程是个循环,当商不是 0 的时候就一直这么干
每次拿到一个余数,都用来构造新数,新数=新数*10+余数
所以经过四次循环后,我们得到新数 4321 ,如果是回文,那么新数应该等于原数,否则,说明不是回文。*/
实训3回文数
最新推荐文章于 2022-04-14 10:10:35 发布