栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言求所有水仙花数以及判断回文数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言求所有水仙花数以及判断回文数

水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153

这样的问题就很简单,我们可以先把这个三位数i如以下代码拆分:

​
​//int a,b,c,i;
//scanf("%d",&i);
a=i/100;//百位数字
b=(i%100)/10;//十位数字
c=(i%10)%10;//个位数字

​

​

拆分后,根据水仙花数的定义,判a,b,c的立方之和是否等于i,再做遍历判断并打印每一个水仙花数,完整代码如下:

​
#include
 
int main()
{
 int a,b,c;
 
 printf("水仙花数如下:"); 
 for(int i = 100;i<999;i++)
{
 a=i/100;
 b=(i%100)/10;
 c=(i%10)%10;
if(a*a*a + b*b*b + c*c*c == i)
{
printf("%d%d%dt",a,b,c);
}

}
printf("n");
return 0;
}

​

当然也可以不拆分,用数组存入每一位(遍历可能有些麻烦)这里就先不演示了。

接下来是回文数:

若一个五位数个位与万位相同,十位与千位相同,那么他就是回文数,如12321;

接下来是判断回文数,思路与水仙花数是一样的,先对五位数n进行拆分,如下:

a = n/10000;
b = n%10000/1000;
c = n%1000/100;
d = n%100/10;
e = n%10;

然后判断a是否等与e,b是否等于d,完整代码如下:

#include

int main()
{
	
	int a,b,c,d,e,i,n;
	printf("输入一个五位数:"); 
	scanf("%d",&n);
	a = n/10000;
	b = n%10000/1000;
	c = n%1000/100;
	d = n%100/10;
	e = n%10;
	if(a == e && b == d) 
	{
		printf("是回文数n"); 
	}
	else
	{
		printf("不是回文数n"); 
	}
    return 0;
}

同样,我们也可以把每位存入数组,如下:

	char num[10];
	scanf("%s",&num);
	for (int i = 0; i < 5; i++) 
	{
		printf("%c", num[i]);
	}
	
	if((num[0] == num[4]) && (num[1] == num[3]))
	{
		printf("是回文数n");
	}
	else
	{
		printf("不是回文数n");
	}

好了今天就到这里,希望大家支持。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/931363.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号