C语言每日一练(5月2号)——水仙花数

1、水仙花数是什么?

水仙花数是一个“自幂数”

自幂数:自幂数是指一个n位数,它的每位上的数字的n次幂之和等于它本身。(例如:当n为3时,有1^3+5^3+3^3=153,153即是n为3时的一个自幂数)

自幂数包括:独身数、水仙花数、四叶玫瑰数、五角星数、六合数、北斗七星数、八仙数、九九重阳数、十全十美数。

三位的水仙花数共有4个:153,370,371,407; 

四位的四叶玫瑰数共有3个:1634,8208,9474;

五位的五角星数共有3个:54748,92727,93084

······

2、水仙花数该怎么算?

首先是要将个位、十位、百位上的数字单个表示:个位上的数字可以用取余获得:a=n%10;百位上的数字用取商获得:c=n/100;十位上的数字可综合得出:b=n/10-c*10;或者b=(n%100-a)/10;

3、水仙花的代码实现:

#include<stdio.h>
int main()
{
	int n=100,j=0;//j用来记录有几个水仙花数
	int a,b,c;//a代表个位数字,b代表十位数字,c代表百位数字
	for(n=100;n<1000;n++)//遍历整个水仙花数的范围(水仙花数是三位数)
	{
		a=n%10;
		c=n/100;
		b=n/10-c*10;//或者:b=(n%100-a)/10;
		if(n==a*a*a+b*b*b+c*c*c)
		{
			printf("%d\t",n);
			j++;
		}
	}
	printf("\n一共%d位水仙花数\n",j);
	return 0;
}

 显示结果: 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值