C语言输出水仙花数

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

        下面将用C语言实现三位数的水仙花数

​
#include<stdio.h>
#include<math.h>
#define N 1e3   //明示一个常量N为1000,方便以后更改代码
                //如:若想要四位数的水仙花数则可以将1000改成10000或者1e4
int main()      //在c语言中,xen表示的是x乘以10的n次方
{	int i;
	for(i=100;i<N;i++)
	{
		int number = i;    //用于替i做运算,而不改变i的值
		int daffodi=0;     //注:记得赋值该变量为0,才能
					       //在每次执行while循环前初始化为0 
		while(number !=0)
		{  
			int t;
			
			t = number%10;    //number对10取余就可以得到个位的数字
			number /=10;      /*上面取到个位数后,利用整型int不能存储小数的性质
							  来将前一位处的数字移动到个位上 如:int i=123
							  i /10= 12,数字3就被计算机无情丢掉了*/

			daffodi += pow(t,3);//对获取的每位数求立方后相加
			                    //注意pow(x,n)是用于计算x的n次方,
		}                       //使用前最好预处理<math.h>

		if(daffodi==i)        //判断每位数立方和是否等于原数,如果是
		{			          //则该输出该水仙花数,注意判断相等的时用==而不是=
		printf("%d\n",i);
		}
	 }
	
}

​

如有疑问欢迎私信博主;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值