蓝桥杯练习
发布时间:2022-12-29 06:22:41 269 相关标签: # ios
一、题目
现在要从5位数的十进制数字中找出各个数位之和等于n的回文数字
输入格式:
输入一个整数n
输出格式
输出所有各个数位之和等于n的5位数,数字按从小到大的数序排列
样例输入
33
样例输出

二、解答
通过此次代码联系,我知道了如何找出范围内的回文数字,及逐位输出,更为系统的是,懂得在循环当中,什么需要重置,以免代码出问题!
三、源码及注释
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include
using namespace std;
int main()
{
int data = 0;
cin >> data;
int s1[10005];
int s2[10005];//存储回文数字
int s3[10005];//存储符合条件的回文数字
int q = 0;//存储回文数字的个数
int q_ = 0;//存储符合条件回文数字的个数
for (int i=10000;i<100000;i++)
{
int n = 0;
int m = i;
while (m!=0)
{
s1[n++] = m % 10;//每次循环之后n要重置!
m /= 10;
}
if (s1[0] == s1[4] && s1[1] == s1[3])
{
s2[q++] = i;//存储所有的回文数字
}
}
//判断回文数字是否符合条件
for (int i=0;i {
int ret = 0;//同理,每次循环之后ret也要重置
int j = s2[i];
while (j!=0)
{
ret += j % 10;
j /= 10;
}
if (ret == data)
{
s3[q_++] = s2[i];
}
}
for (int i=0;i {
cout << s3[i] << ' ';
}
return 0;
}
文章来源: https://blog.51cto.com/u_15740457/5967914
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报