蓝桥杯 历届试题 回文数字
2018-03-25 12:12
309 查看
历届试题 回文数字 时间限制:1.0s 内存限制:256.0MB 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。
本题要求你找到一些5位或6位的十进制数字。满足如下要求:
该数字的各个数位之和等于输入的整数。输入格式 一个正整数 n (10<n<100), 表示要求满足的数位和。输出格式 若干行,每行包含一个满足要求的5位或6位整数。
数字按从小到大的顺序排列。
如果没有满足条件的,输出:-1样例输入44样例输出99899
499994
589985
598895
679976
688886
697796
769967
778877
787787
796697
859958
868868
877778
886688
895598
949949
958859
967769
976679
985589
994499样例输入60样例输出-1
本题要求你找到一些5位或6位的十进制数字。满足如下要求:
该数字的各个数位之和等于输入的整数。输入格式 一个正整数 n (10<n<100), 表示要求满足的数位和。输出格式 若干行,每行包含一个满足要求的5位或6位整数。
数字按从小到大的顺序排列。
如果没有满足条件的,输出:-1样例输入44样例输出99899
499994
589985
598895
679976
688886
697796
769967
778877
787787
796697
859958
868868
877778
886688
895598
949949
958859
967769
976679
985589
994499样例输入60样例输出-1
#include<cstdio> #include<cstring> #include<iostream> using namespace std; char s[6]; int cnt; int del(int i) { int j=0; cnt=0; memset(s,0,sizeof(s)); while(i) { s[j++]='0'+i%10; cnt+=i%10; i/=10; } return cnt; } bool huiwen(char s[]) { int len=strlen(s); /// printf("$$%s %d\n",s,len); for(int i=0;i<len/2;i++) { if(s[i]!=s[len-1-i]) return false; } return true; } int main() { int n; scanf("%d",&n); if(n<2||n>54) printf("-1\n"); else { for(int i=10001;i<=999999;i++) { if(del(i)==n){ if(huiwen(s)) printf("%d\n",i); } } } return 0; }
相关文章推荐
- 【蓝桥杯练习】历届试题 回文数字
- 蓝桥杯 历届试题 回文数字 (水)
- 蓝桥杯 PREV-21 历届试题 回文数字
- 蓝桥杯 PREV_21 历届试题 回文数字(java)
- 蓝桥杯 历届试题 回文数字
- 蓝桥杯历届试题之回文数字
- 蓝桥杯 历届试题 回文数字
- 蓝桥杯历届试题 回文数字
- 蓝桥杯历届试题 回文数字
- 蓝桥杯 历届试题 回文数字 (暴力)
- 1503140110-蓝桥杯-历届试题 回文数字
- 蓝桥杯 历届试题 回文数字 (Java解题)
- [蓝桥杯][历届试题]回文数字
- 蓝桥杯 历届试题 回文数字
- 蓝桥杯 历届试题 回文数字【水题】
- 蓝桥杯 历届试题 回文数字
- 【蓝桥杯】历届试题 回文数字
- 蓝桥杯历届试题之回文数字
- 蓝桥杯 历届试题 回文数字
- 蓝桥杯日常刷题——历届试题1434:回文数字