#include stdio.h

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出古浪免費(fèi)做網(wǎng)站回饋大家。
int main()
{
int start, end, i = 0, a, b, c, size = 0;
while (scanf("%d %d", start, end) == 2)
{
for (i = start; i = end; i++)
{
a = i / 100;
b = i / 10 % 10;
c = i % 10;
//total = pow(c, 3) + pow(a, 3) + pow(b, 3);
if ((a*a*a + b*b*b + c*c*c) == i)? //滿足水仙花條件
{
if (size == 0)? ?//size=0輸出第一個(gè)水仙花數(shù)
{
printf("%d", i);
}
else? ? ?//size++輸出第二。。第n個(gè)水仙花數(shù)
{
printf(" %d", i);
}
size++;? ?//個(gè)數(shù)++;
}
}
if (size == 0)? ?//范圍內(nèi)個(gè)數(shù)為0,則說(shuō)明沒(méi)有滿足條件的
{
printf("no");
}
printf("\n");
}
return 0;
}
擴(kuò)展資料:
需要注意的地方:
1.將n整除以100,得出n在百位上的數(shù)字hun。
2.將(n-i*100)整除以10(或?qū)先整除以10再對(duì)10求模n/10%10),得出n在十位上的數(shù)字ten。
3.將n對(duì)10取余,得出n在個(gè)位上的數(shù)字ind。
4.求得這三個(gè)數(shù)字的立方和是否與其本身相等,若相等,則該數(shù)為水仙花數(shù)。
參考資料:
百度百科-水仙花數(shù)
int li(int n)
{ return n*n*n;
}
int shuixian(int n)
{
int b,s,g;
b=n/100;
s=n/10%10;
g=n%10;
if((li(b)+li(s)+li(g))==n)
return 1;
return 0;
}
int main()
{
int i;
scanf("%d",i);
if(shuixian(i))
printf("%d\n",i);
return 0;
}
C語(yǔ)言輸出水仙花數(shù)的具體分析和實(shí)現(xiàn)流程如下:
1、水仙花數(shù)的含義
“水仙花數(shù)”是一個(gè)三位數(shù)其各位數(shù)字的立方和等于該數(shù)本身。例如:3^3 + 7^3+ 0^3 = 370
2、算法分析
把給出的某個(gè)三位數(shù)的個(gè)位、十位、百位分別拆分,并求其立方和(設(shè)為sum),若sum與給出的三位數(shù)相等, 則為“水仙花數(shù)”。
3、算法設(shè)計(jì)
“水仙花數(shù)”是一個(gè)三位數(shù),可以確定該數(shù)的取值范圍是 100?999。對(duì)應(yīng)的循環(huán)條件如下:
for (n=10; n1000; n++) {}
將n整除以100,得出n在百位上的數(shù)字h。
將(n-i*100)整除以10, 得出n在十位上的數(shù)字t。
將n對(duì)10取余,得出n在個(gè)位上的數(shù)字a。
求得h,t,a 三個(gè)數(shù)字的立方和是否與n相等,如果相等則證明該數(shù)為水仙花數(shù)。
4、代碼實(shí)現(xiàn)
#include stdio.h
int main() {
int h, t, a, n;
printf("result is:");
for ( n=100; n1000; n++ )? { /*整數(shù)的取值范圍*/
h = n / 100;
t = (n-h*100) / 10;
a = n % 10;
if (n == h*h*h + t*t*t + a*a*a) ?/*各位上的立方和是否與原數(shù)n相等*/
printf("%d ?", n);}
printf("\n");
return 0;}
擴(kuò)展資料:
常見(jiàn)水仙花數(shù)
水仙花數(shù)又稱阿姆斯特朗數(shù)。
1、三位的水仙花數(shù)共有4個(gè):153,370,371,407;
2、四位的四葉玫瑰數(shù)共有3個(gè):1634,8208,9474;
3、五位的五角星數(shù)共有3個(gè):54748,92727,93084;
4、六位的六合數(shù)只有1個(gè):548834;
5、七位的北斗七星數(shù)共有4個(gè):1741725,4210818,9800817,9926315;
6、八位的八仙數(shù)共有3個(gè):24678050,24678051,88593477
參考資料來(lái)源:百度百科-水仙花數(shù)
方法:先弄懂什么是水仙花數(shù)::
水仙花數(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ù)方法同上:
剛寫(xiě)的:調(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();
}
水仙花數(shù)是指一個(gè) n 位數(shù) ( n≥3 ),每個(gè)位上的數(shù)字的 n 次冪之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。
所以可以依次通過(guò)模除求得每個(gè)位上的值,然后做n次冪后相加,再判斷是否與本身相等,從而得到是否為水仙花數(shù)的結(jié)論。
以求所有三位數(shù)水仙花數(shù)為例,代碼如下,其它相似。
#includestdio.h
#includestdlib.h
#includestdbool.h
int?cube(const?int?n){//計(jì)算立方。如果是四位則是四次方,以此類推。
return?n*n*n;
}
int?isNarcissistic(const?int?n){//計(jì)算是否為水仙花數(shù)。
int?hundreds=n/100;//百位
int?tens=n/10-hundreds*10;//十位
int?ones=n%10;//個(gè)位
return?cube(hundreds)+cube(tens)+cube(ones)==n;//如果相等,則為水仙花數(shù)。
}
int?main(void){
int?i;
for(i=100;i1000;++i){//對(duì)所有三位數(shù)判斷。
if(isNarcissistic(i))//如果是則輸出。
printf("%d\n",i);
}
return?0;
}
所謂的“水仙花數(shù)”是指一個(gè)三位數(shù)其各位數(shù)字的立方和等于該數(shù)本身,例如153是“水仙花數(shù)”,因?yàn)椋?53 = 1^3 + 5^3+ 3^3?。
下面是完整的C語(yǔ)言編程代碼:
運(yùn)行結(jié)果:
result is:153? 370? 371? 407
擴(kuò)展資料
常見(jiàn)水仙花數(shù)
水仙花數(shù)又稱阿姆斯特朗數(shù)。
1、三位的水仙花數(shù)共有4個(gè):153,370,371,407;
2、四位的四葉玫瑰數(shù)共有3個(gè):1634,8208,9474;
3、五位的五角星數(shù)共有3個(gè):54748,92727,93084;
4、六位的六合數(shù)只有1個(gè):548834;
5、七位的北斗七星數(shù)共有4個(gè):1741725,4210818,9800817,9926315;
6、八位的八仙數(shù)共有3個(gè):24678050,24678051,88593477
參考資料:百度百科:水仙花數(shù)
本文標(biāo)題:c語(yǔ)言編輯函數(shù)求水仙花數(shù) 用函數(shù)求水仙花數(shù)c語(yǔ)言程序
標(biāo)題網(wǎng)址:http://www.chinadenli.net/article38/dooecpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、做網(wǎng)站、靜態(tài)網(wǎng)站、小程序開(kāi)發(fā)、網(wǎng)站營(yíng)銷、定制開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)