所謂的“水仙花數(shù)”是指一個三位數(shù)其各位數(shù)字的立方和等于該數(shù)本身,例如153是“水仙花數(shù)”,因為:153 = 1^3 + 5^3+ 3^3?。
桂陽ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
下面是完整的C語言編程代碼:
運行結(jié)果:
result is:153? 370? 371? 407
擴展資料
常見水仙花數(shù)
水仙花數(shù)又稱阿姆斯特朗數(shù)。
1、三位的水仙花數(shù)共有4個:153,370,371,407;
2、四位的四葉玫瑰數(shù)共有3個:1634,8208,9474;
3、五位的五角星數(shù)共有3個:54748,92727,93084;
4、六位的六合數(shù)只有1個:548834;
5、七位的北斗七星數(shù)共有4個:1741725,4210818,9800817,9926315;
6、八位的八仙數(shù)共有3個:24678050,24678051,88593477
參考資料:百度百科:水仙花數(shù)
#includelt;stdio.hgt;
#includelt;math.hgt;
int narcissistic(int number);
void PrintN(int m,int n);
int main()
{
int m,n;
scanf("%d%d",m,n);
if(narcissistic(m))printf("%d is a narcissistic number\n",m);
PrintN(m,n);
if(narcissistic(n))printf("%d is a narcissistic number\n",n);
return 0;
}
int narcissistic(int number){
int i,n=0,sum=0,cnt=0;
n=number;
while(n){
cnt++;
n/=10;
}
n=number;
while(n){
i=n%10;
sum+=(int)pow(i,cnt);
n/=10;
}
if(sum==number)
return 1;
else
return 0;
}
void PrintN(int m,int n){
int i;
for(i=m+1;ilt;n;i++)
if(narcissistic(i))
printf("%d\n",i);
}
擴展資料:
printf函數(shù)使用注意事項
1、域?qū)?/p>
%d:按整型數(shù)據(jù)的實際長度輸出。
如果想輸出指定寬度可以指定域?qū)挘?md--gt,m域?qū)?,打印出來以后,在控制臺上,顯示m位;
如果要打印的數(shù)的位數(shù)如果超過我們設定m則原樣輸出;
如果要打印的數(shù)的位數(shù)如果小于設定的位數(shù),則補空白,具體如下:
如果m為正數(shù),則左對齊(左側(cè)補空白);
如果m為負數(shù),則右對齊(右側(cè)補空白)。
2、轉(zhuǎn)義字符
如果想輸出字符"%",則應該在“格式控制”字符串中用連續(xù)兩個%表示。
如:printf("%f%%",1.0/3);輸出結(jié)果:0.333333%。
參考資料:
百度百科——水仙花數(shù)
水仙花數(shù)即三位的自冪數(shù)。所謂自冪數(shù),就是指一個 n 位數(shù) ( n≥3 ),其每位上的數(shù)字的 n 次冪之和等于本身。
所以水仙花數(shù),首先是三位數(shù),形式為abc,同時a,b,c的立方和值與原本數(shù)相同。
類似的還有
四位自冪數(shù):四葉玫瑰數(shù)
五位自冪數(shù):五角星數(shù)
六位自冪數(shù):六合數(shù)
等等。
對于水仙花數(shù)的判斷,需要按照以下步驟:
1 提取該數(shù)的個位,十位,百位值。
2 計算三個數(shù)的立方和。
3 與原值比較,如相等則是。
要輸出所有水仙花數(shù),需要:
1 對所有三位數(shù),即100到999遍歷;
2 對每個數(shù)判斷是否為水仙花數(shù),如是則退出。
當循環(huán)結(jié)束,所有的水仙花數(shù)就輸出成功了。
代碼如下:
int?isNarcissistic(int?n)
{
int?a?=?n/100;
int?b?=?n/10%10;
int?c?=?n%10;
return?a*a*a?+?b*b*b?+?c*c*c?==?n;
}
int?main()
{
int?i;
for(i?=?100;?i?1000;?i?++)
if(isNarcissistic(i))?printf("%d?",i);
}
輸出結(jié)果如下:
153?370?371?407
代碼如下:
#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ù)
C語言輸出水仙花數(shù)的具體分析和實現(xiàn)流程如下:
1、水仙花數(shù)的含義
“水仙花數(shù)”是一個三位數(shù)其各位數(shù)字的立方和等于該數(shù)本身。例如:3^3 + 7^3+ 0^3 = 370
2、算法分析
把給出的某個三位數(shù)的個位、十位、百位分別拆分,并求其立方和(設為sum),若sum與給出的三位數(shù)相等, 則為“水仙花數(shù)”。
3、算法設計
“水仙花數(shù)”是一個三位數(shù),可以確定該數(shù)的取值范圍是 100?999。對應的循環(huán)條件如下:
for (n=10; n1000; n++) {}
將n整除以100,得出n在百位上的數(shù)字h。
將(n-i*100)整除以10, 得出n在十位上的數(shù)字t。
將n對10取余,得出n在個位上的數(shù)字a。
求得h,t,a 三個數(shù)字的立方和是否與n相等,如果相等則證明該數(shù)為水仙花數(shù)。
4、代碼實現(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;}
擴展資料:
常見水仙花數(shù)
水仙花數(shù)又稱阿姆斯特朗數(shù)。
1、三位的水仙花數(shù)共有4個:153,370,371,407;
2、四位的四葉玫瑰數(shù)共有3個:1634,8208,9474;
3、五位的五角星數(shù)共有3個:54748,92727,93084;
4、六位的六合數(shù)只有1個:548834;
5、七位的北斗七星數(shù)共有4個:1741725,4210818,9800817,9926315;
6、八位的八仙數(shù)共有3個:24678050,24678051,88593477
參考資料來源:百度百科-水仙花數(shù)