方法:先弄懂什么是水仙花數(shù)::
創(chuàng)新互聯(lián)建站專注于網(wǎng)站建設(shè),為客戶提供網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開發(fā),成都品牌網(wǎng)站建設(shè),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。
水仙花數(shù)是指一個(gè)n(=3)位數(shù)字的數(shù),它等于每個(gè)數(shù)字的n次冪之和。
3位水仙花數(shù)————先定義3個(gè)數(shù)其中一個(gè)為1--9;2個(gè)為0--9;(用for循環(huán))
再用如果a定義為1--9那么用100*a來(lái)表示百位;如果b或者c定義是0--9那么用10*b或者10*c來(lái)表示十位;那么下面用c或者b來(lái)表示個(gè)位;
if(100*a+10*b+c==a*a*a+b*b+c)
如果滿足這個(gè)條件那么:輸出的printf("%d%d%d",a,b,c)就是3位數(shù)的水仙花數(shù):
4位水仙花數(shù)方法同上:
剛寫的:調(diào)試過(guò)了
#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();
}
求采納為滿意回答。
#includeiostream
using namespace std;
int main()
{
int i,a,b,c;
for(i=100;i=999;i++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
if (a*a*a+b*b*b+c*c*c==i)
{
coutiendl;
}
}
return 0;
所有的水仙花數(shù)?? 應(yīng)該要給個(gè)范圍吧。水仙花數(shù)是有限的?? 我這個(gè)就是找出100到999內(nèi)的水仙花數(shù)。
源程序如下:
#includestdio.h
int fun(int n)
{ int i,j,k,m;
m=n;
k=0;
for(i=1;i4;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;i1000;i++)
if(fun(i)==1)
printf("%d is ok!\n" ,i);
}
水仙花數(shù)是指一個(gè) n 位數(shù) ( n≥3 ),它的每個(gè)位上的數(shù)字的 n 次冪之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
#include "stdio.h"
int main()//一個(gè)程序一定要有一個(gè)main函數(shù) 你下面定義了n這就不要了定義了
{
int i,j,k,n;
for(i=1;i10;i++)
for(j=0;j10;j++)
for(k=0;k10;k++)
{
n=i*100+j*10+k;
if((i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k)))
printf("%d\n",n);
}
}//程序還是對(duì)的 沒什么問(wèn)題
代碼如下:
#include stdio.h
int main()
{
printf("輸出水仙花數(shù):\n");
int i=100;
for( ; i1000; 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\t", i);
}
return 0;
}
擴(kuò)展資料:
自冪數(shù)是指一個(gè) n 位數(shù),它的每個(gè)位上的數(shù)字的 n 次冪之和等于它本身。
n為1時(shí),自冪數(shù)稱為獨(dú)身數(shù)。顯然,0,1,2,3,4,5,6,7,8,9都是自冪數(shù)。
n為2時(shí),沒有自冪數(shù)。
n為3時(shí),自冪數(shù)稱為水仙花數(shù),有4個(gè):153,370,371,407;
n為4時(shí),自冪數(shù)稱為四葉玫瑰數(shù),共有3個(gè):1634,8208,9474;
n為5時(shí),自冪數(shù)稱為五角星數(shù),共有3個(gè):54748,92727,93084;
n為6時(shí),自冪數(shù)稱為六合數(shù), 只有1個(gè):548834;
n為7時(shí),自冪數(shù)稱為北斗七星數(shù), 共有4個(gè):1741725,4210818,9800817,9926315;
n為8時(shí),自冪數(shù)稱為八仙數(shù), 共有3個(gè):24678050,24678051,88593477;
n為9時(shí),自冪數(shù)稱為九九重陽(yáng)數(shù),共有4個(gè):146511208,472335975,534494836,912985153;
n為10時(shí),自冪數(shù)稱為十全十美數(shù),只有1個(gè):4679307774。
參考資料:
百度百科——水仙花數(shù)
按照你的要求,把圖中的求水仙花數(shù)的程序改為函數(shù)調(diào)用的形式的C語(yǔ)言程序如下
#includestdio.h
int?isNarcissus(int?a){
int?b,c,d;
b=a/100;
c=(a/10)%10;
d=a%10;
if((b*b*b+c*c*c+d*d*d)==a){
return?1;
}else{
return?0;
}
}
int?main(){
int?a;
for(a=100;a1000;a++){
if(isNarcissus(a)==1){
printf("%d\n",a);
}
}
return?0;
}
運(yùn)行結(jié)果
153
370
371
407