C语言-求三位数的水仙花数

Python013

C语言-求三位数的水仙花数,第1张

首先说一下什么是水仙花数,就是一个三位数,它的各个位数上的数字的立方相加等于它本身,例如153,1的立方1,5的立方125,3的立方9,1+125+9=153

求水仙花数的基本思想

首先要满足三位数这个条件,所以循环从i=100到i =999

然后就是要取这个三位数各个位数的数字,取百位上的数,用除法i/100,因为i是int 类型所以结果就是百位上的数字

十位上的数,先取10的余数再除以10

个位上的数,直接取10的余数即可

最后再用一个if语句判断一下各个位数立方和是否等于这个数i

下面是我上机实验的图片

其实求各个位数的方法有点不一样,没影响的,方法很多,但是我觉得上述文字中方法更简洁

3.12

今天早上起来又看到一个新方法

可以用do while

c语言中,如何输出所有的水仙花数 水仙花数即三位的自幂数。所谓自幂数,就是指一个 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 = 100i<1000i ++)

if(isNarcissistic(i)) printf("%d ",i)

}

输出结果如下:

153 370 371 407

c语言中水仙花数

这是列印1000以内的水仙华数

#include<stdio.h>int main(){ int i,a,b,cfor(i=100i<1000i++) { a=i/100b=(i/10)%10c=i%10 if((a*a*a+b*b*b+c*c*c)==i) printf("%d\n",i)} return(0)}

50分~用QB语言输出所有水仙花数

For n = 100 To 999

i = Int(n / 100)

j = Int((n - i * 100) / 10)

k = n Mod 10

If i ^ 3 + j ^ 3 + k ^ 3 = n Then Print n,

Next

C语言怎样编输出所有水仙花数范围100到999

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。判断一个数是否为水仙花数需要拆分数位,求幂再相加。不过这道题限定了范围,都是三位数,所以可以使用3重回圈分别代表3个数位,这样就省去了拆分的麻烦。

程式码如下:

#include <stdio.h>

int main()

{

int i, j, k, sum

sum = 0

for (i = 1i <10i++)

for (j = 0j <10j++)

for (k = 0k <10k++)

if ((i*i*i + j*j*j + k*k*k) == (i*100 + j*10 + k))

printf("%d\n", i*100 + j*10 + k)

return 0

}

输出0-999中的所有的 水仙花数

水仙花数至少要3位数,所以0-999相当于100-999:

@echo off

Setlocal EnableDelayedExpansion

for /l %%a in (100 1 999) do (

for %%a in (%%a/100 %%a%%100/10 %%a%%10) do set/a "x+=%%a*(%%a*(%%a))"

if %%a equ !x! echo %%a

set "x="

)

pause

另存为x.bat双击执行。。

用c#设计程式,输出所有的水仙花数

◆C# ASP.NET 中的实现程式码

for (int i = 100i <1000i++)

{

int bai = 0

int shi = 0

int ge = 0

int baiyushu = 0

bai = i / 100

baiyushu = i % 100

shi = baiyushu / 10

ge = baiyushu % 10

if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge)

{

Response.Write("水仙花数:" + i + "<br>")

}

}

C语言中,水仙花数怎么做

main()

{float a,b,c,i

for(i=100i<=999i++)

{a=i/100

b=s/10-a*10

c=i%10

if(i=a*a*a+b*b*b+c*c*c)

}

print("%d",i)

}

如何求所有的水仙花数。

1. 首先你这程式中少了x++这条语句,会进入死回圈的

2. if(a*a*a=b*b*b+c*c*c==x) "等号"写错了,改成 if(a*a*a+b*b*b+c*c*c==x)

3. printf(%d\n",x)少了个双引号 改成 printf("%d\n",x)

还有除了这种方法外还有其他好的方法吗?

演算法部分可以改改

a=x/100

b=(x-a*100)/10

c=x-a*100-b*10

改成

a=x/100

c=x%10求余数,得到个位数,

b=x/10去掉个位数,

b=b%10求余数,得到十位数,

我用回圈写了个程式,可以参考下:

#include<stdio.h>

int main()

{

int i,a,b,c

for(i=100i<=999++i)

{

a=i%10

b=i/100

c=i/10

c=c%10

if(a*a*a+b*b*b+c*c*c==i)printf("%d\n",i)

}

getch()

return 0

}

c语言输出所有得水仙花数,玫瑰花数和五角星数

水仙花数即三位的自幂数。所谓自幂数,就是指一个 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 = 100i<1000i ++)

if(isNarcissistic(i)) printf("%d ",i)

}

如何用C语言求所有水仙花数之和?

# include <stdio.h>

void main()

{

int m,n,a,b

int sum=0对总和初始化

for(m=100m<1000m++)

{

n=m/100

a=m%100/10

b=m%10 for回圈

if(m==n*n*n+a*a*a+b*b*b)

printf("%d\n",m)

sum=sum+m如果是水仙花数就显示这个数并加到sum中

}

printf("%d\n",sum)寻找结束后显示sum

}

#include<stdio.h>

void main()

{ int i,j,k,m

printf("input data:")   

scanf("%d",&m)  /*输入一个3位数*/                                    

i=m/100

j=(m-100*i)/10

k=m-100*i-10*j

if(m==i*i*i+j*j*j+k*k*k) printf("%d\n",m) /*是水仙花数时输出*/

}

(一)C语言:

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

(二)水仙花数(Narcissistic number):

也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。