藍橋杯 歷屆試題 迴文數字
阿新 • • 發佈:2019-02-17
歷屆試題 迴文數字 時間限制:1.0s 記憶體限制:256.0MB問題描述 觀察數字:12321,123321 都有一個共同的特徵,無論從左到右讀還是從右向左讀,都是相同的。這樣的數字叫做:迴文數字。 本題要求你找到一些5位或6位的十進位制數字。滿足如下要求: 該數字的各個數位之和等於輸入的整數。輸入格式 一個正整數 n (10<n<100), 表示要求滿足的數位和。輸出格式 若干行,每行包含一個滿足要求的5位或6位整數。 數字按從小到大的順序排列。 如果沒有滿足條件的,輸出:-1樣例輸入44樣例輸出99899499994589985598895679976688886697796769967778877787787796697859958868868 877778886688895598949949958859967769976679985589994499樣例輸入60樣例輸出-1
#include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> using namespace std; int sum(int n) { int ans=0; while(n) { ans+=n%10; n/=10; } return ans; } int ishw(int n) { int temp; char *s=new char; s=itoa(n,s,10);//整型轉字串 標頭檔案stdlib reverse(s,s+strlen(s));//翻轉字串 temp=atoi(s);//字串轉整型 標頭檔案stdlib if(temp==n) return 1; return 0; } int main() { int n,flag=0; scanf("%d",&n); for(int i=10000; i<1000000; i++) { if(ishw(i)&&sum(i)==n) { printf("%d\n",i); flag=1; } } if(!flag)puts("-1"); return 0; }