c语言水仙花数判断函数 c语言判断水仙花数代码

C语言用自定义函数,定义函数判断一个整数是否为水仙花数,并利用这个函数输出所有的水仙花数。

水仙花数即三位的自幂数。所谓自幂数,就是指一个 n 位数 ( n≥3 ),其每位上的数字的 n 次幂之和等于本身。

创新互联主要从事网站制作、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务湘阴,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

所以水仙花数,首先是三位数,形式为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

用C语言编写判断是否是水仙花数的程序

水仙花数指的是一个数的各位数字的立方和等于数字本身,那么我们怎么样用C语言去判断一个数字是不是水仙花数呢?下面我给大家分享一下。

工具/材料

Visual Studio 2015

01

首先打开Visual Studio 2015软件,新建一个C语言程序,如下图所示

02

然后我们需要在C语言文件中引入库文件stdio.h,它里面包含了很多后面要使用的函数,如下图所示

03

接着我们就需要实现水仙花数的判断逻辑,主要是把输入的数字各个位都取出来,然后进行立方求和,最后和输入的数字进行比较,如下图所示

04

最后我们按ctrl+F5运行程序,在弹出的界面中,我们输入一个数字,程序就会自动告诉我们这个数字是不是水仙花数

用c语言判断一个数是否为水仙花数?

你的C语言程序我帮你改完了,完整的程序如下(改动的地方见注释)

#includestdio.h

int narcissistic(int number){

//这里n=1改成n=0并加product变量保存连乘积

int a,b=0,n=0,c,number2,number3,product;

number2=number;

number3=number;

while(number0){//这里把number10改成number0

number=number/10;

n++;

}

while(number20){//这里把number2=1改成number20

a=number2%10;

number2=number2/10;

product=1;//这里初始化product变量为1

for(c=0;cn;c++)//这里把c=1;改成c=0;

product=product*a;//这里把a=a*a;改成product=product*a;

b=b+product;//这里把b=b+a;改成b=b+product;

}

if(b==number3)

return 1;

else

return 0;

}

int main(){

int i;

for(i=100;i1000;i++){

if(narcissistic(i)==1)

printf("%d ",i);

}

return 0;

}

c语言判断水仙花数

有两种办法,第一,水仙花数很少,三位数的没几个,直接判断是不是那几个就行了。

然后正确的思路是,把三位数拆开。这个三位数是num,三位立方和为ans的话,ans初始为0,之后

while(num0)

{

temp

=

num%10;

ans

=

temp

*temp

*temp;

num

/=

10;

}

最后比较ans和一开始的num就行了,注意是一开始的那个。输入的时候把那个数记录一下就行了。

标题名称:c语言水仙花数判断函数 c语言判断水仙花数代码
标题链接:https://www.cdcxhl.com/article38/ddspgsp.html

成都网站建设公司_创新互联,为您提供App设计网站维护网站建设电子商务定制网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

营销型网站建设