方法:先弄懂什么是水仙花數(shù)::

創(chuàng)新互聯(lián)建站專注于網(wǎng)站建設(shè),為客戶提供網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設(shè)計開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗,各類網(wǎng)站都可以開發(fā),成都品牌網(wǎng)站建設(shè),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計,建網(wǎng)站費用,建網(wǎng)站多少錢,價格優(yōu)惠,收費合理。
水仙花數(shù)是指一個n(=3)位數(shù)字的數(shù),它等于每個數(shù)字的n次冪之和。
3位水仙花數(shù)————先定義3個數(shù)其中一個為1--9;2個為0--9;(用for循環(huán))
再用如果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位數(shù)的水仙花數(shù):
4位水仙花數(shù)方法同上:
剛寫的:調(diào)試過了
#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)該要給個范圍吧。水仙花數(shù)是有限的?? 我這個就是找出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ù)是指一個 n 位數(shù) ( n≥3 ),它的每個位上的數(shù)字的 n 次冪之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
#include "stdio.h"
int main()//一個程序一定要有一個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);
}
}//程序還是對的 沒什么問題
代碼如下:
#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;
}
擴展資料:
自冪數(shù)是指一個 n 位數(shù),它的每個位上的數(shù)字的 n 次冪之和等于它本身。
n為1時,自冪數(shù)稱為獨身數(shù)。顯然,0,1,2,3,4,5,6,7,8,9都是自冪數(shù)。
n為2時,沒有自冪數(shù)。
n為3時,自冪數(shù)稱為水仙花數(shù),有4個:153,370,371,407;
n為4時,自冪數(shù)稱為四葉玫瑰數(shù),共有3個:1634,8208,9474;
n為5時,自冪數(shù)稱為五角星數(shù),共有3個:54748,92727,93084;
n為6時,自冪數(shù)稱為六合數(shù), 只有1個:548834;
n為7時,自冪數(shù)稱為北斗七星數(shù), 共有4個:1741725,4210818,9800817,9926315;
n為8時,自冪數(shù)稱為八仙數(shù), 共有3個:24678050,24678051,88593477;
n為9時,自冪數(shù)稱為九九重陽數(shù),共有4個:146511208,472335975,534494836,912985153;
n為10時,自冪數(shù)稱為十全十美數(shù),只有1個:4679307774。
參考資料:
百度百科——水仙花數(shù)
按照你的要求,把圖中的求水仙花數(shù)的程序改為函數(shù)調(diào)用的形式的C語言程序如下
#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;
}
運行結(jié)果
153
370
371
407
本文標(biāo)題:c語言自定義函數(shù)水仙花,c語言自定義函數(shù)水仙花數(shù)
標(biāo)題來源:http://chinadenli.net/article45/dsedjhi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、用戶體驗、網(wǎng)站維護、、關(guān)鍵詞優(yōu)化、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)