Problem 1 水仙花數
阿新 • • 發佈:2019-01-04
簡要題意:
輸出所有在m和n範圍內的水仙花數。
解題思路:
現將定義域內(100<=m<=n<=999)所有數存入陣列中,如果為水仙花數,則該位置即為該水仙花數,否則賦值為0。輸入給定範圍區間,判斷區間內陣列的每個數值是否為0,若全部為0則輸出no,否則輸出對應不為0的水仙花數。
細節處理:
- 在主函式前定義陣列,陣列直接預設初始化,不需再在後面單獨賦值0。
- 輸出時,注意空格的輸出(最後一個數輸出後沒有空格)。
原始碼:
#include<iostream> using namespace std; int f[1010], g[1010]; int main() { int m, n, a, b, c; for(int i=100;i<=1010;i++) { a=i/100; b=(i-a*100)/10; c=(i-a*100-b*10); if(i==a*a*a+b*b*b+c*c*c) f[i]=i; } while(cin>>m>>n) { int d=0; for(int i=m;i<=n;i++) { if(f[i]!=0) g[d++]=f[i]; } if(d==0) cout<<"no"<<endl; else { for(int i=0;i<d-1;i++) cout<<g[i]<<" "; cout<<g[d-1]<<endl; } } return 0; }