基础练习 特殊回文数

来源:互联网 发布:数据分析师就业前景 编辑:程序博客网 时间:2024/06/03 18:18
问题描述
  123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
  输入一行,包含一个正整数n。
输出格式
  按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为手机系统升级后卡机怎么办 孕妇汗脚脚臭怎么办 巴基斯坦留学生丢失护照怎么办 vivox20耳机进水了怎么办 轴圆齿之间间隙大怎么办 浩辰cad2017保存不了怎么办 会议无poster版块怎么办 大四考研失败了怎么办 博士退学老师不同意怎么办? 贴双眼皮眼皮松怎么办 dpf灯亮了怎么办 60岁社保没交满怎么办 老公素质太差怎么办 耿彦波退休了太原怎么办 宫腔镜三天后同房了怎么办 开关失灵关不了怎么办 灯的开关关不掉怎么办? 身上毛孔粗大怎么办呀 脸被牙膏灼伤怎么办 wifi要登录认证怎么办 本科没有选导师怎么办 预授权撤销了怎么办 软件连不上网怎么办 手机屏幕出现有道词典怎么办 孩子总觉得没错怎么办 孩子动手打父母怎么办 初中零基础高中怎么办 弟媳妇爱上我怎么办 孩子考不好家长怎么办 小高考不过关怎么办 小高考不过考生怎么办 江苏不过怎么办小高考 大小脸拍婚纱照怎么办 被大学开除学籍怎么办 大专不给你退学怎么办 大专退学后档案怎么办 多单位同时录取怎么办 毕业学校改名了怎么办 改名后所有档案怎么办 大学学校改名毕业证怎么办 洗碗下水道堵了怎么办