難度0 水仙花數


問題描述:
判斷一個數是不是水仙花數。
其中水仙花數定義各個位數立方和等於它本身的三位數。
有多組測試數據,每組測試數據以包含一個整數n(100<=n<1000)
輸入0表示程序輸入結束。
如果n是水仙花數就輸出Yes,否則輸出No


程序代碼:
#include<stdio.h>
int main(){
int n,a,b,c;
while(1){
//printf("請輸入一個三位數n(100<=n<1000):"); 
scanf("%d",&n);
if(n==0) break;
else{
a=n%10;                  //分離出個位上的數字 
b=(n%100)/10;            //分離出十位上的數字 
c=(n%1000)/100;          //分離出百位上的數字 
if(n==a*a*a+b*b*b+c*c*c)
printf("Yes\n");
else 
printf("No\n");

}
return 0;
}


兩個要點:
①怎樣分離出個位十位百位取數字呢? 153 1*1*1+5*5*5+3*3*3=153 
②設置循環 當輸入0時結束循環 


重點是:
整數分割問題 
unsigned int i=23612
個位=i%10
十位=(i%100)/10 

百位=(i%1000)/100 





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章