>凡事网 导航

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

2024-07-01m.fan-pin.com
请用C语言编写一个完整的.求水仙花数的程序~

#include
#include
main ()
{
double i=10,j,k,n,m,l;
printf("intpu X");//输入界限就是多少以内的水仙花数
scanf(%lf,&k);
for (;i<k;i++)//从10到界限循环
{
m=0;//判断器清零
j=int(i);//记录器赋值
for(n=0;j<1;n++)j/=10;//计算位数
j=int(i);//重新记录I的值
l=n;//记录位数
do
{
s+=(int(j%10))^l;n--;j=int(j/10);//得到n位数个位的n次方并放入累加器
}
while(n>0);//得到n位数,各位上数的n次方加和,放入判断器
if(s==int(i))printf("%.0lf是水仙花数",i);//若判断器与原数相等则输出
}
//从理论来讲,这个实现起来比较复杂,理论最大的水仙花数有33位...
下面列出24位以内所有水仙花数
153,370,371,407
1634,8208,9474
5: 93084   5: 92727   5: 54748   6: 548834   7: 9800817   7: 4210818   7: 1741725   7: 9926315   8: 24678050   8: 24678051   8: 88593477   9: 146511208   9: 912985153   9: 472335975   9: 534494836   10: 4679307774   11: 32164049650   11: 40028394225   11: 42678290603   11: 49388550606   11: 32164049651   11: 94204591914   11: 44708635679   11: 82693916578   14: 28116440335967   16: 4338281769391370   16: 4338281769391371   17: 35875699062250035   17: 21897142587612075   19: 3289582984443187032   19: 4929273885928088826   19: 4498128791164624869   20: 63105425988599693916   21: 449177399146038697307   21: 128468643043731391252   23: 27907865009977052567814   23: 35452590104031691935943   23: 27879694893054074471405   23: 21887696841122916288858   24: 174088005938065293023722   24: 188451485447897896036875

#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();

}
经测试,可以使用!!

#include<stdio.h>
#include<math.h>
main()
{
    int a,b,c,Y;
    int sum=100;
    while(sum<=999)
    {
a=sum/100;
b=sum%100/10;
c=sum%10;
Y=a*a*a+b*b*b+c*c*c;
    if(Y==sum)//判断相当是用==
    printf("%d",Y);
    //else 这个else一定要去掉
sum++;
    }
    return 0;
}


12345678910111213141516171819#include<stdio.h>#include<math.h>main(){ int a,b,c,Y; int sum=100; while(sum<=999) { a=sum/100; b=sum%100/10; c=sum%10; Y=a*a*a+b*b*b+c*c*c; if(Y==sum)//判断相当是用== printf("%d",Y); //else 这个else一定要去掉 sum++; } return 0;}

#include<stdio.h>
void main()
{
int m,a,b,c,d,num=0,sum=0;
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)
{
printf("%d ",m);
sum+=m;
num++;
}
}
printf("\n平均值:%.2f\n",1.0*sum/num);
}

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

c语言求水仙花数问题,在线等,急
include <stdio.h> include <stdlib.h> void main(){ int i,j,k,n;printf("'water flower'number is:");for(n=100;n<10000;n++){ i=n\/100;\/*分解出百位*\/ j=n\/10%10;\/*分解出十位*\/ k=n%10;\/*分解出个位*\/ if(n==i*i*i+j*j*j+k*k*k){ printf("%-5d",n);}...

C语言:输出100-999中所有水仙花数。
\/\/输出水仙花 voidNarcissusNumber(){for(inti=100;i<1000;i++){ intsum=0;inttemp=i;intrem;for(intj=0;j<3;j++){rem=temp%10;temp\/=10;sum+=rem*rem*rem;}if(sum==i){ printf("%d\\n",i);} } }

分别使用while、do-while和for语句编程,找出所有的水仙花数并输出。
For语句 public class numl { public static void main(String[] args) { int x, y, z, i, sum;for(i=100;i<1000;i++)z=i%100%10;y=i\/10;y=y%10;x=i\/ 100;sum=x*x*x+y*y*y+z*Z*z;if (sum=i)System. out. println (sum+"是水仙花数”) ;} } Whi le语句 public...

大一c语言求水仙花数
大一c语言求水仙花数方法如下:1、首先打开编辑器,写上注释内容。2、新建4个变量,分别是num,b,s,g分别代表三位数,百位数,十位数,个位数。3、然后写for循环,从100开始,最后到1000,自增。4、然后分别求出这个三位数的百位,十位,个位。5、接着判断百位的3次方+十位的3次方+个位的3次方...

“水仙花数”是指一个3位数,其各位数的立方和等于该数,编写程序,打印...
也可以直接用a、b、c三个循环搞定 '这个是VB Private Sub Form_Click()For a = 1 To 9 For b = 0 To 9 For c = 0 To 9 If a ^ 3 + b ^ 3 + c ^ 3 = 100 * a + 10 * b + c Then Print (100 * a + 10 * b + c)Next c Next b Next a End Sub 显示:153...

c语言找出2000以内的完数和水仙花数
include<stdio.h> include<math.h> void main(){ int i,j,sum;\/\/求完数 printf("2000以内的完数有:\\n");for(i=2;i<2000;i++){ sum=0;for(j=1;j<=i\/2;j++){ if(i%j==0)sum=sum+j;} if(sum==i)printf("%4d ",i);} \/\/求水仙花数 printf("\\n2000以内的水仙花数有:...

c语言编程题 找出所有的水仙花数,水仙花数是指一个3位数
for(int i=100;i<=999;i++){ \/\/分割出个位 int a=i%10;\/\/分割出十位 int b=i\/10%10;\/\/分割出百位 int c=i\/100;\/\/判断该数是否等于【个位的三次方+十位的三次方+百位的三次方】if(i==(Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3))){ System.out.println(i+"是水仙花...

c语言,这个求水仙花数的程序后面要怎么写?
include<stdio.h>#include<math.h>main(){int a,b,c,i,x;for(i=100;i<1000;i++){ x=i; a=x\/100;\/\/百位数 b=x\/10%10;\/\/十位数 c=x%10;\/\/个位数 if(pow(a,3)+pow(b,3)+pow(c,3)==x) printf("%d是水仙花数\\n",x);}} ...

c语言 编程求三位数的水仙花数?
include <stdio.h>int main(){ int i; \/\/定义一个循环变量 int a,b,c; \/\/定义百、十、个位变量 for(i=100;i<=999;i++) \/\/循环从100到999 { a=i\/100; \/\/取百位 b=i%10\/10; \/\/取十位 c=i%10; \/\/取个位 if(i==a*a*a+b*b*b+c*c*c) \/\/判断是否为水仙花数 { ...

相关链接2

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