編譯100到999的水仙花數
① 用流程圖描述100-999的水仙花數
水仙花數含義:一個正整數有x(x>2)位,它每位位數上的x次冪等於它本身。
題目要求流程圖得到在100~999之間的水仙花數,首先設定2個變數x,n。x表示變數100~999,n表示水仙花數量,並且設初始x=100,n=0。接下來判斷x是不是屬於該范圍,若是,則進行水仙花數的判定(附一),判定水仙花數過後x自加一,x=x+1。若不是,則在100~999之間的數都遍歷完成,輸出數量n。
附一(水仙花判定):x是一個3位數,判定要求按照水仙花數定義。x /100取整;得到百位的數字,x除100的余數再除10取整,得到十位的數字;x除10的余數,就是x的個位數,依次百位十位個位的三次方相加,若與原數x相等則是水仙花數,輸出該數字,n自加一;若不等,則不是。
流程圖如下圖所示:
② 求100999之間的水仙花數c語言
下面的程序代碼採用三重循環來進行實現窮舉,窮舉每一位數字上可能出現的數字,然後把它們拼成一個三位數,檢查這個三位數是否符合水仙花數的條件?如果滿足就進行輸出。int main(){int i,j,k;for(i=1;i<10;i++) for(j=0;j<10;j++) for(k=0;k<10;k++) if(i*i*i+j*j*j+k*k*k==100*i+10*j+k)printf("%d%d%d\n",i,j,k); return 0;}
③ c語言的編程:100~999的水仙花數
#include<stdio.h>
voidmain()
{
inta,b,c,m,count;
count=0;
m=100;
printf("水仙花數為:");
do
{
a=m/100;
b=(m-a*100)/10;
c=m%10;
if(a*a*a+b*b*b+c*c*c==m)
{
printf("%5d",m);
count++;
}
m++;
}
while(m<1000);
printf(" 水仙花數為:%d ",count);
}
④ C語言編寫100到999的水仙花數
水仙花數的定義是這樣的:一個 n 位數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。(例如:1^3 + 5^3+ 3^3 = 153)
這種方法和解一元三次方程一樣,套進去很好理解
a=sum/100 是計算百位的數字 ,如553 ,a=553/100=5;
b=sum/10-a*10; 是計算十位的數字,如553 , b=553/10-5*10=5 ;
c=sum-a*100-b*10 是計算個位的數字 如553 ,c=553-5*10-5*10=3;
⑤ C語言怎樣編輸出所有水仙花數范圍100到999
水仙花數是指一個 n 位數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。判斷一個數是否為水仙花數需要拆分數位,求冪再相加。不過這道題限定了范圍,都是三位數,所以可以使用3重循環分別代表3個數位,這樣就省去了拆分的麻煩。
代碼如下:
#include <stdio.h>
int main()
{
int i, j, k, sum;
sum = 0;
for (i = 1; i < 10; i++)
for (j = 0; j < 10; j++)
for (k = 0; k < 10; k++)
if ((i*i*i + j*j*j + k*k*k) == (i*100 + j*10 + k))
printf("%d\n", i*100 + j*10 + k);
return 0;
}
⑥ 寫一個程序用於輸出100-999之間的水仙花數
public
class
Practice1
{
/**
*
輸出100~999之間的水仙花數(個位,十位,百位數的立方之和等於他本身)
*/
public
static
void
main(String[]
args)
{
int
i;
int
a;
int
b;
int
c;
for(i=100;i<=999;i++){
a=i%10;
b=i/10%10;
c=i/100;
if(a*a*a+b*b*b+c*c*c==i){
System.out.println("100~999之間的水仙花數是"+i);
}
}
}
}