資源限制
時間限制:1.0s 記憶體限制:512.0MB
問題描述
123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。
輸入一個正整數n, 程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 。
輸入一個正整數n, 程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 。
輸入格式
輸入一行,包含一個正整數n。
輸出格式
按從小到大的順序輸出滿足條件的整數,每個整數佔一行。
樣例輸入
52
樣例輸出
899998
989989
998899
989989
998899
資料規模和約定
1<=n<=54。
#include<iostream> #include<algorithm> #include<vector> #include<cstring> #include<string.h> #include<queue> #include<map> #include<cmath> #define OK 1 #define ERROR 0 #define MAXSIZE 120 #define MAX 100020 const double eps=1e-5; const int maxn=1010; typedef long long LL; using namespace std; bool IsSum(int n,int m){ int sum=0; while(m){ sum+=m%10; m/=10; } if(sum==n){ return true; } else{ return false; } } bool IsPalindrome(int n){ string st=""; while(n){ st+=(n%10)+'0'; n/=10; } int b=st.length(); for(int i=0;i<b/2;i++) { if(st[i]!=st[b-1-i]){ return false; } } return true; } int main(){ int n,i; scanf("%d",&n); for(i=10000;i<=999999;i++){ if(IsSum(n,i)){ if(IsPalindrome(i)){ printf("%d\n",i); } } } return 0; }