列印水仙花數c語言
㈠ 列印出所有水仙花數的c語言程序代碼
main()
{
int
i,j,k,n;
scanf("%d",&n);//輸入你想要的數據,這個是判斷三位數的。
i=n/100;
j=n/10-i*10;
k=n%10;//上面i,j,k,是分別獲取百位,十位,各位,上的數字。
if(n==i*i*i+j*j*j+k*k*k)//判斷是不是水仙花數。
printf("yes\n");
printf("%d\n",n);//輸出n
else
printf("no\n");
}
上面程序是只能判斷三位數的,如果想更高的話,可以在判斷各個位數上改動程序。
㈡ 「水仙花數」C語言程序
代碼如下:
#include <stdio.h>
int main()
{
printf("輸出水仙花數: ");
int i=100;
for( ; i<1000; 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 ", i);
}
return 0;
}
(2)列印水仙花數c語言擴展閱讀:
自冪數是指一個 n 位數,它的每個位上的數字的 n 次冪之和等於它本身。
n為1時,自冪數稱為獨身數。顯然,0,1,2,3,4,5,6,7,8,9都是自冪數。
n為2時,沒有自冪數。
n為3時,自冪數稱為水仙花數,有4個:153,370,371,407;
n為4時,自冪數稱為四葉玫瑰數,共有3個:1634,8208,9474;
n為5時,自冪數稱為五角星數,共有3個:54748,92727,93084;
n為6時,自冪數稱為六合數, 只有1個:548834;
n為7時,自冪數稱為北斗七星數, 共有4個:1741725,4210818,9800817,9926315;
n為8時,自冪數稱為八仙數, 共有3個:24678050,24678051,88593477;
n為9時,自冪數稱為九九重陽數,共有4個:146511208,472335975,534494836,912985153;
n為10時,自冪數稱為十全十美數,只有1個:4679307774。
㈢ c語言中,如何輸出所有的水仙花數
水仙花數即三位的自冪數。所謂自冪數,就是指一個 n 位數 ( n≥3 ),其每位上的數字的 n 次冪之和等於本身。
所以水仙花數,首先是三位數,形式為abc,同時a,b,c的立方和值與原本數相同。
類似的還有
四位自冪數:四葉玫瑰數
五位自冪數:五角星數
六位自冪數:六合數
等等。
對於水仙花數的判斷,需要按照以下步驟:
1 提取該數的個位,十位,百位值。
2 計算三個數的立方和。
3 與原值比較,如相等則是。
要輸出所有水仙花數,需要:
1 對所有三位數,即100到999遍歷;
2 對每個數判斷是否為水仙花數,如是則退出。
當循環結束,所有的水仙花數就輸出成功了。
代碼如下:
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);
}
輸出結果如下:
153 370 371 407
㈣ c語言 編寫一個判斷是否為水仙花數的函數,並通過調用該函數列印輸出所有水仙花數。
#include<stdio.h>
#include<math.h>
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 ",m);
PrintN(m,n);
if(narcissistic(n))printf("%d is a narcissistic number ",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;i<n;i++)
if(narcissistic(i))
printf("%d ",i);
}
(4)列印水仙花數c語言擴展閱讀:
printf函數使用注意事項
1、域寬
%d:按整型數據的實際長度輸出。
如果想輸出指定寬度可以指定域寬,%md-->,m域寬,列印出來以後,在控制台上,顯示m位;
如果要列印的數的位數如果超過我們設定m則原樣輸出;
如果要列印的數的位數如果小於設定的位數,則補空白,具體如下:
如果m為正數,則左對齊(左側補空白);
如果m為負數,則右對齊(右側補空白)。
2、轉義字元
如果想輸出字元"%",則應該在「格式控制」字元串中用連續兩個%表示。
如:printf("%f%%",1.0/3);輸出結果:0.333333%。
㈤ c語言輸出所有水仙花數
1、首先需要打開Dev-c++軟體,點擊「新建源代碼」。
㈥ 水仙花數的c語言編程。
所謂的「水仙花數」是指一個三位數其各位數字的立方和等於該數本身,例如153是「水仙花數」,因為:153 = 1^3 + 5^3+ 3^3。
下面是完整的C語言編程代碼:
運行結果:
result is:153 370 371 407
(6)列印水仙花數c語言擴展閱讀
常見水仙花數
水仙花數又稱阿姆斯特朗數。
1、三位的水仙花數共有4個:153,370,371,407;
2、四位的四葉玫瑰數共有3個:1634,8208,9474;
3、五位的五角星數共有3個:54748,92727,93084;
4、六位的六合數只有1個:548834;
5、七位的北斗七星數共有4個:1741725,4210818,9800817,9926315;
6、八位的八仙數共有3個:24678050,24678051,88593477
㈦ C語言 列印出所有的「水仙花數」,所謂「水仙花數」是指一個3位數,其各位數字立方和等於該數本身。
列印100-999之間的水仙花數!
方法1:
main()
{
int a,b,c,d;
for(a=100;a<=99;a++)
b=a/100;
c=a/10-b*10;
d=a-b*100-c*10;
if(b*b*b+c*c*c+d*d*d==a) printf("%d",a);
}
方法2:
main()
{
int i,j,k;
for(i=1;i<=9;i++)
for(j=1;j<=9;j++)
for(k=1;k<=9;k++)
{
if((i*i*i+j*j*j+k*k*k)==(i*100+j*10+k))
printf("%d",i*100+j*10+k);
}
}
㈧ C語言,列印出所有水仙花數,怎樣寫更簡潔點
#include
<stdio.h>
int
main(void)
{
int
a,b,c;
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);
return
0;
}你想列印出所有的水仙花數,可以自己增加循環的嵌套層數,這個程序是找出4位之內的所有水仙花數,您可以照自己的需求做個改變
㈨ c語言水仙花數
#include <stdio.h>
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輸出第一個水仙花數
{
printf("%d", i);
}
else //size++輸出第二。。第n個水仙花數
{
printf(" %d", i);
}
size++; //個數++;
}
}
if (size == 0) //范圍內個數為0,則說明沒有滿足條件的
{
printf("no");
}
printf(" ");
}
return 0;
}
(9)列印水仙花數c語言擴展閱讀:
需要注意的地方:
1.將n整除以100,得出n在百位上的數字hun。
2.將(n-i*100)整除以10(或將n先整除以10再對10求模n/10%10),得出n在十位上的數字ten。
3.將n對10取余,得出n在個位上的數字ind。
4.求得這三個數字的立方和是否與其本身相等,若相等,則該數為水仙花數。
網路-水仙花數
㈩ 如何用C語言編寫程序列印出水仙花數
其實不用這樣麻煩地去分解每一位,在不要求性能的情況下,直接列印出來就行了噻。
#include <stdio.h>
int main(void)
{
int i,j,k;
for (i=1;i<=9;i++)
{
for (j=0;j<=9;j++)
{
for (k=0;k<=9;k++)
{
if (100*i + 10*j + k == i*i*i +j*j*j + k*k*k)
{
printf("%d%d%d\n",i,j,k);
}
}
}
}
return 0;
}
結果是:
153
370
371
407
Process returned 0 (0x0) execution time : 0.125 s
Press any key to continue.