如何用C语言中的while语句编写水仙花数程序

如何用C语言中的while语句编写水仙花数程序,第1张

在DEV-C++通过检测,有问题欢迎追问

#include

<mathh>

int

main()

{

int

i=100,a,b,c;

printf("3位数中的水仙花数为:");

while(i<999)

{

i++;

a=i/100;

b=(i/10)%10;

c=i%10;

if(pow(a,3)+pow(b,3)+pow(c,3)==i)

printf("%d\t",i);

}

system("PAUSE");

return

;

}

#include<stdioh>

#include<mathh>

int main()

{

int multi(int n);

int pow(int m);

int i,count=0;

printf("水仙花数为:\n");

for(i=101;i<1000;i++)

{

multi(i);

pow(i);

   if(i==pow(i))  //zheli 

{

  count++;

}

}

printf("Count=%d\n",count);

return 0;

}

int pow(int m)

{

int b,t,s;

b=m/100;

t=m/10-b10;

s=m%10;

//printf("%d %d %d",b,t,s); //这里屏蔽了

if(m==(int )pow(b10,3)+pow(t10,3)+pow(s10,3)) //这里 

{

printf("%d ",m);

}

return 0;

}

int multi(int n)

{

int q,w,r;

q=n/100;

w=n/10-q10;

r=n%10;

if(n==qqq+www+rrr)

{

printf("%d ",n);

}

return 0;

}

水仙花数是指一个 n 位数 ( n≥3 ),每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。

所以可以依次通过模除求得每个位上的值,然后做n次幂后相加,再判断是否与本身相等,从而得到是否为水仙花数的结论。

以求所有三位数水仙花数为例,代码如下,其它相似。

#include<stdioh>

#include<stdlibh>

#include<stdboolh>

int cube(const int n){//计算立方。如果是四位则是四次方,以此类推。

return nnn;

}

int isNarcissistic(const int n){//计算是否为水仙花数。

int hundreds=n/100;//百位

int tens=n/10-hundreds10;//十位

int ones=n%10;//个位

return cube(hundreds)+cube(tens)+cube(ones)==n;//如果相等,则为水仙花数。

}

int main(void){

int i;

for(i=100;i<1000;++i){//对所有三位数判断。

if(isNarcissistic(i))//如果是则输出。

printf("%d\n",i);

}

return 0;

}

以上就是关于如何用C语言中的while语句编写水仙花数程序全部的内容,包括:如何用C语言中的while语句编写水仙花数程序、用C语言求水仙花数及其个数、c语言编程调用函数求水仙花数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9333885.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存