>凡事网 导航

c语言怎么编写水仙花数? 用C语言怎么编写一个能求出所有的水仙花数的程序?

2024-07-03m.fan-pin.com
“水仙花数”C语言程序~

代码如下:
#include
int main()
{
printf("输出水仙花数:
");
int i=100;
for( ; i<1000; i++){
int num_0 = i%10;
int num_1 = i/10%10;
int num_2 = i/10/10%10;
if(i==(num_0*num_0*num_0+num_1*num_1*num_1+num_2*num_2*num_2))
printf("%d", i);
}
return 0;
}

扩展资料:
自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
n为1时,自幂数称为独身数。显然,0,1,2,3,4,5,6,7,8,9都是自幂数。
n为2时,没有自幂数。
n为3时,自幂数称为水仙花数,有4个:153,370,371,407;
n为4时,自幂数称为四叶玫瑰数,共有3个:1634,8208,9474;
n为5时,自幂数称为五角星数,共有3个:54748,92727,93084;
n为6时,自幂数称为六合数, 只有1个:548834;
n为7时,自幂数称为北斗七星数, 共有4个:1741725,4210818,9800817,9926315;
n为8时,自幂数称为八仙数, 共有3个:24678050,24678051,88593477;
n为9时,自幂数称为九九重阳数,共有4个:146511208,472335975,534494836,912985153;
n为10时,自幂数称为十全十美数,只有1个:4679307774。
参考资料:
百度百科——水仙花数

#include
#include

void main()
{
int iPoh,iPos,iPog,iNum = 0; /*定义变量 ipoh为百位 ipos为十位 ipog为个位,iNum为最后的水仙花数字*/

for (iNum=100; iNum<=300; iNum++)
{
iPoh = iNum/100; /*分解出数字的百 十 个位上的数字*/
iPos = (iNum%100)/10;
iPog = iNum%10;

if (iPoh*iPoh*iPoh+iPos*iPos*iPos+iPog*iPog*iPog == iNum) /*判断是否为水仙花数字*/
{
printf("%-6d",iNum);
} /*输出结果*/
}

getch();

}
经测试,可以使用!!

方法:先弄懂什么是水仙花数::
水仙花数是指一个n(>=3)位数字的数,它等于每个数字的n次幂之和。
3位水仙花数————先定义3个数其中一个为1--9;2个为0--9;(用for循环)
再用如果a定义为1--9那么用100*a来表示百位;如果b或者c定义是0--9那么用10*b或者10*c来表示十位;那么下面用c或者b来表示个位;
if(100*a+10*b+c==a*a*a+b*b+c) 如果满足这个条件那么:输出的printf("%d%d%d",a,b,c)就是3位数的水仙花数:

4位水仙花数方法同上:

刚写的:调试过了
#include <stdio.h>
int main(void)
{
int a,b,c,d;
system("cls");
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);
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
if(1000*a+100*b+10*c+d==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)
printf("%d%d%d%d\n",a,b,c,d);
getch();
}

或者这样:
#include <stdio.h>
int main(void)
{
int a,b,c,d;
system("cls");
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);
for(d=0;d<=9;d++)
if(1000*a+100*b+10*c+d==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)
printf("%d%d%d%d\n",a,b,c,d);
}
getch();
}

水仙花数:是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
参考代码:
#include<stdio.h>int fun(int n){//判断3位数n是否是水仙花数 int q,b,g; q=n/100;//求出千位数 b=(n/10)%10;//求出百位数 g=n%10;//求出个位数 if(q*q*q+b*b*b+g*g*g==n) return 1; return 0;} int main(){ int i; for(i=100;i<1000;i++) if(fun(i)) printf("%d\n",i); return(0);}/*运行结果:153370371407*/

#include<stdio.h>
void main()
{
int m,a,b,c,d,p;
printf("所有三位水仙花数为:\n");
for(m=100;m<=999;m++)
{
a=(int)(m/100);
b=(int)((m-100*a)/10);
c=(int)(m-(100*a+10*b));
if(m==a*a*a+b*b*b+c*c*c)
{
p=m;
printf("%d ",p);
}
}
printf("\n");
printf("所有四位水仙花数为:\n");
for(m=1000;m<=9999;m++)
{
a=(int)(m/1000);
b=(int)((m-1000*a)/100);
c=(int)((m-(1000*a+100*b))/10);
d=(int)(m-(1000*a+100*b+10*c));
if(m==a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)
{
p=m;
printf("%d ",p);
}
}
printf("\n");
}

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main()
{
int i, a, b, c, d, sum;

for(i = 100; i < 10000; i++)
{
a = i % 10;
b = i / 10 % 10;
c = i / 100 % 10;
d = i / 1000 % 10;
if(d)
sum = pow(a,4)+pow(b,4)+pow(c,4)+pow(d,4);
else
sum = pow(a,3)+pow(b,3)+pow(c,3);
if(sum == i)
printf("%d\n", i);
}
system("PAUSE");
return 0;
}

VB实现水仙花数的程序代码?
VB实现水仙花数的程序代码如下:PrivateSubCommand_Click()Fornum=100To999 a=numMod10 b=num\\10Mod10 c=num\\100 Ifa^3+b^3+c^3=numThenPrintnum Nextnum EndSub 实现具体步骤如下:1.启动VB程序,新建一个标准的exe项目,如下图。2.在窗体上绘制命令按钮(名称:命令),双击命令按钮以进入代码...

c语言水仙花数怎么编程实现
判断一个三位数是否为水仙花数c语言如下:在C语言中,我们可以编写程序来判断一个三位数是否为水仙花数。水仙花数是指一个三位数,其各个位上的数字的立方和等于该数本身。用于判断一个三位数是否为水仙花数:c#include<stdio.h>intmain(){intnumber,originalNumber,remainder,result=0;printf("请输入一...

c语言编写程序 水仙花数 玫瑰花数
1 include <stdio.h> include <stdlib.h> int flower(int n){ int i, j, k;i = n % 10;j = n \/ 10 % 10;k = n \/ 100;if (i*i*i + j*j*j + k*k*k == n)return 1;else return 0;} int main(void){ int i;for (i = 100; i < 1000; i++){ if (flower...

c语言 编写一个判断是否为水仙花数的函数,并通过调用该函数打印输出所有...
include<stdio.h> include<math.h> int narcissistic(int number);void PrintN(int m,int n);int main(){ int m,n;scanf("%d%d",&m,&n);if(narcissistic(m))printf("%d is a narcissistic number\\n",m);PrintN(m,n);if(narcissistic(n))printf("%d is a narcissistic number\\n",n...

编写一段C语言程序,程序功能是: 输出所有的“水仙花数”。
include <stdio.h> int main(){ int i,j,k;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==100*i+10*j+k)printf("%d%d%d\\n",i,j,k);return 0;}

用C语言求出100到1000之间的水仙花数?
include"stdio。h"intmain(){ intx,y,z;printf("100到1000之间的水仙花数有:\\n");for(inta=100;a<=1000;a++)x=a\/100;\/\/x为百位上的数 y=(a-x*100)\/10;\/\/y为十位上的数 z=a-x*100-y*10;\/\/z为个位上的数 if(a==x*x*x+y*y*y+z*z*z){ printf("...

C语言求1到1000内的水仙花数求大神?
include<stdio.h> int main(){ int i,a,b,c;for(i=100;i<1000;i++){ a=i\/100;b=i\/10%10;c=i%10;if(a*a*a+b*b*b+c*c*c==i)printf("%d ",i);} printf("\\n");system("pause");return 0;}

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

C语言编写水仙花数c语言水仙花数编程
关于C语言编写水仙花数,c语言水仙花数编程这个很多人还不知道,今天来为大家解答以上的问题,现在让我们一起来看看吧!1、判断语句里应该是==不是=#include int f1(int num){ int a;a=(num\/100)*(num\/100)*(num\/100);return a;}int f2(int num){ int b;b=(num%100\/10)*(num%100\/10...

c语言编写求水仙数,从100到999之间的。用fun函数
include<stdio.h> int fun(int n){ int i,j,k,m;m=n;k=0;for(i=1;i<4;i++){ j=m%10;m=(m-j)\/10;k=k+j*j*j;} if(k==n)return 1;else return(0);} void main(){ int i;for(i=100;i<1000;i++)if(fun(i)==1)printf("%d is ok!\\n" ,i);} 水仙花数是...

相关链接2

返回顶部
凡事房车自主流
凡事网