基础练习 特殊回文数
来源:互联网 发布:数据分析师就业前景 编辑:程序博客网 时间:2024/06/03 18:18
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
989989
998899
数据规模和约定
1<=n<=54
#include<iostream>#include<vector>#include<algorithm>using namespace std;vector<int>A;int SUM(int a, int b, int c, int n) //将得到的数据返回{if (n == 5)return a * 10001 + b * 1010 + c * 100;elsereturn a * 100001 + b * 10010 + c * 1100;}int main(){int n, m;int a, b, c;int sum;cin >> n;for (c = 9; c >= 0; c--){for (b = 9; b >= 0; b--){a = n - c - 2 * b; //a是一个判断点if (a % 2 == 0 && a <= 18 && a > 0) //如果a满足五位数的条件{A.push_back(SUM(a / 2, b, c, 5)); //存入数组}if ((a - c) % 2 == 0 && (a - c) <= 18 && a - c > 0) //(a-c)补充了上面的条件,此时为六位数{A.push_back(SUM((a - c) / 2, b, c, 6));//存进来}}}sort(A.begin(), A.end()); //排个序for (int i = 0; i < A.size(); i++)cout << A[i] << endl;return 0;}
做这个题的时候,我一度只得了40分,后来才发现,在循环里面的判断语句,我在第二个 if 前多加了一个 else 导致原本的六位数没能成功输出
大致就是:
修改前:输入:2 输出:10001
修改后: 输入:2 输出:10001 100001
阅读全文
0 0
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- 基础练习 特殊回文数
- java api 操作 hdfs
- NLTK在python中文字所表达的情感预测
- raspberryPi的omxplayer使用方法
- 617. Merge Two Binary Trees
- Echarts使用
- 基础练习 特殊回文数
- EOJ 2527 Fj & haozi【dfs】
- java--map--线程安全
- 求一个数的绝对值
- CSS3实现图片循环旋转
- 题目名称 : [Conditions] 谁拿了最多奖学金
- word2vec
- leetCode-Combination Sum II
- 大型分布式网站架构设计与实践 第二章