计算所有三位水仙花数的和并输出求和结果(求三位数水仙花数c语言

http://www.itjxue.com  2023-03-05 01:44  来源:未知  点击次数: 

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

# include stdio.h

void main()

{

int m,n,a,b;

int sum=0;//对总和初始化

for(m=100;m1000;m++)

{

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

}

用C语言编一个可以列出所有三位数的水仙花数如153=1^3+5^3+3^3;

一、

数学定义:

水仙花数是指一个

n

位正整数

(

n≥3

),它的每个位上的数字的

n

次幂之和等于它本身。

于是三位水仙花数,就是形式为n=100a+10b+c

且n=a*a*a+b*b*b+c*c*c的数值。

其中a∈[1,9]

b,c∈[0,9]

a,b,c∈Z

二、

根据定义,循环遍历100到999,通过除法和模除取出三位上的数字,计算立方和并与原始数值比较,如相等,则为水仙花数,输出即可。

三、

代码:

#include stdio.h

int main()

{

int a,b,c,n;

for(n = 100; n 1000; n ++)//遍历

{

a=n/100;//百位

b=n/10%10;//十位

c=n%10;//个位

if(a*a*a+b*b*b+c*c*c==n)//水仙花数

printf("%d\n", n);//输出

}

return 0;

}四、

运行结果:

3位水仙花数计算

“3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。

请按照从小到大的顺序输出所有的3位水仙花数,请用一个“逗号+空格”分隔输出结果。

注意:这是一个OJ题目,输出格式要严格一致,最后一位水仙花数后没有逗号。

示例:634, 412

(注意,这两个数字不是水仙花数)

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

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 = 100; i 1000; i ++)

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

}

输出结果如下:

153 370 371 407

c语言中水仙花数

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

#includestdio.hint main(){ int i,a,b,c; for(i=100;i1000;i++) { a=i/100; b=(i/10)%10; c=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 = 1; i 10; i++)

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

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

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 = 100; i 1000; i++)

{

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=100;i=999;i++)

{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; 求余数,得到十位数,

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

#includestdio.h

int main()

{

int i,a,b,c;

for(i=100;i=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 = 100; i 1000; i ++)

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

}

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

# include stdio.h

void main()

{

int m,n,a,b;

int sum=0;对总和初始化

for(m=100;m1000;m++)

{

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

}

求三位数水仙花数

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。

三位的水仙花数共有4个:153,370,371,407;

加一下就可以了,

153+370+371+407=1301

C语言:

#include stdio.h

int main(void)

{

int a,b,c;

for(a=1;a=9;a++)

for(b=0;b=9;b++)

for(c=0;c=9;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;

}

(责任编辑:IT教学网)

更多

推荐Illustrator教程文章