水仙花数

本文介绍如何使用C语言编程来找出特定位数的水仙花数,包括三位数和七位数的实例代码,并展示了运行结果。

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

 

下面是求3位数的水仙花数的C代码:

#include <stdio.h>

int main(void)

{

         int a,b,c;

         for(a = 1; a < 10; a++)

                   for(b = 0; b < 10; b++)

                            for(c = 0; c < 10; c++)

                                     if((100*a+10*b+c) == (a*a*a+b*b*b+c*c*c))

                                               printf("%d%d%d/n",a,b,c);

         return 0;

}

// 结果为:

// 153

// 370

// 371

// 407

 

下面是求7位数的水仙花数的C代码:

#include <math.h>

int main(void)

{

         int a, b, c, d, e, f, g;

         for(a = 1; a < 10; a++)

         for(b = 0; b < 10; b++)

         for(c = 0; c < 10; c++)

         for(d = 0; d < 10; d++)

         for(e = 0; e < 10; e++)

         for(f = 0; f < 10; f++)

         for(g = 0; g < 10; g++)

         {

                   if((1000000 * a + 100000 * b + 10000 * c + 1000 * d + 100 * e + 10 * f + g) ==

                            (pow(a, 7) + pow(b, 7) + pow(c, 7) + pow(d, 7) + pow(e, 7) + pow(f, 7) + pow(g, 7)))

                   {

                            printf("%d/n", 1000000 * a + 100000 * b + 10000 * c + 1000 * d + 100 * e + 10 * f + g);

                   }

         }

         return 0;

}

// 结果:

// 1741725

// 4210818

// 9800817

// 9926315

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值