#include <stdio.h> int main() { int i,j,k,n; printf("水仙花數:",n); for(n=100;n<1000;n++) { i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf("%d\n ",n); } return 0; }
輸出結果: 水仙花數:153 370 371 407 Press any key to continue 方法二:
#include <stdio.h> #include <math.h> int main() { int i,m,sum; for(i=100;i<1000;i++) { sum=0; m=i; do { sum=sum+pow(m%10,3);//pow(a,b)是指a的b次冪是double型的 m=m/10; } while(m!=0); if(sum==i) printf("%d ",i); } printf("\n"); return 0; }
運行結果: 153 370 371 407 Press any key to continue 方法三:
#include <stdio.h> int main() { int i,j,k,n; printf("水仙花數:",n); for(n=100;n<1000;n++) { i=n/100; j=(n-i*100)/10; k=n-i*100-j*10; if(n==i*i*i+j*j*j+k*k*k) printf("%d\n ",n); } return 0; }
結果: 水仙花數:153 370 371 407