c语言中,如何输出所有的水仙花数

 我来答
风若远去何人留
2016-01-04 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450108
专业C/C++软件开发

向TA提问 私信TA
展开全部
水仙花数即三位的自幂数。所谓自幂数,就是指一个 n 位数 ( n≥3 ),其每位上的数字的 n 次幂之和等于本身。
所以水仙花数,首先是三位数,形式为abc,同时a,b,c的立方和值与原本数相同。
类似的还有
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
等等。

对于水仙花数的判断,需要按照以下步骤:
1 提取该数的个位,十位,百位值。
2 计算三个数的立方和。
3 与原值比较,如相等则是。

要输出所有水仙花数,需要:
1 对所有三位数,即100到999遍历
2 对每个数判断是否为水仙花数,如是则退出。
当循环结束,所有的水仙花数就输出成功了。
代码如下:

int isNarcissistic(int n)
{
int a = n/100;
int b = n/10%10;
int c = n%10;
return a*a*a + b*b*b + c*c*c == n;
}

int main()
{
int i;
for(i = 100; i< 1000; i ++)
if(isNarcissistic(i)) printf("%d ",i);
}

输出结果如下:

153 370 371 407
TableDI
2024-07-18 广告
当我们谈到Python与Excel的拆分时,通常指的是使用Python的库来读取Excel文件中的数据,然后根据某种逻辑(如按行、按列、按特定值等)将数据拆分成多个部分或输出到新的Excel文件中。上海悉息信息科技有限公司在处理这类任务时,... 点击进入详情页
本回答由TableDI提供
解0人
推荐于2018-02-27 · TA获得超过2389个赞
知道大有可为答主
回答量:1474
采纳率:83%
帮助的人:744万
展开全部

输出999以内的水仙花数:

int main()
{
    int i,a,b,c;
    for(i=100;i<=999;i++)
    {
        a=i/100;
        b=i%100/10;
        c=i%10;
        if(i==a*a*a+b*b*b+c*c*c) printf("%5d",i);
    }
    getch();
    return 0;
}

祝你成功!

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万物起源一本空
2021-05-12 · 资源的大融汇,天文地理经史,人物鬼怪仙奇
万物起源一本空
采纳数:22 获赞数:112

向TA提问 私信TA
展开全部

话不多说,上图

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Hugs_baby
2021-08-31
知道答主
回答量:1
采纳率:0%
帮助的人:440
展开全部
#include <stdio.h>
int main(){//打印所有水仙花数(三位数),如:153=1^3+5^3+3^3(要求分别用一重循环和三重循环实现)
int number,i,j,m;
printf("所有的水仙花数如下:\n");
//一重循环
// for(number=100;number<=999;number++){
// i=number/100;
// j=(number%100)/10;
// m=number%10;
// if(number==i*i*i+j*j*j+m*m*m){
// printf("%d ",number);
// }
// }
//三重循环
for(i=1;i<=9;i++){
for(j=0;i<=9;j++){
for(m=0;i<=9;m++){
number=i*100+j*10+m;
if(number==i*i*i+j*j*j+m*m*m){
printf("%d ",number);
}
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柚子
2015-04-16 · 大家好!我是SparklingSoul,欢迎来到我的娱乐博客...
柚子
采纳数:174 获赞数:312

向TA提问 私信TA
展开全部
#include "stdio.h"

int main()
{
int a,b,c,d;
for(a=100;a<=999;a++)
{
b=a/100;
c=(a-100*b)/10;
d=a-100*b-10*c;
if(b*b*b+c*c*c+d*d*d==a)
printf("Ë®ÏÉ»¨ÊýÊÇ%d\n",a);

}

return 0;
}
我这个是计算100-999的 你改下就符合你的要求了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式