马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 冰清玉洁丸 于 2021-11-14 12:42 编辑
我们将这样的数字定义为偶位回文数:
1.该数字的位数是偶数
2.该数字是一个回文数
例如:1221 就是一个偶位回文数,而 121 和 1234 都不是偶位回文数,前者不满足数字的位数是偶数,后者不满足回文数。
给定一个正整数 n,请你求出从小到大前 n 个偶位回文数的和是多少?
输入共一行,一个正整数 n
输出前 n 个偶位回文数的和。
我的代码:#include <iostream>
#include <stack>
#include <cmath>
using namespace std;
stack<int> every;
int init(int n)
{
int m = n;
for (int i = 0; n != 0; i++)
{
every.push(n % 10);
n /= 10;
}
int length = every.size();
int a[length * 2];
for (int i = 0; !every.empty(); i++)
{
a[i] = every.top();
every.pop();
}
for (int i = length, j = 1; i < length * 2; i++, j += 2)
{
a[i] = a[i - j];
}
int sum = 0;
for (int i = 0, j; i < length; i++)
{
j = pow(10, length - 1 - i);
sum += a[i] * j;
}
if (m == 0)
{
return sum;
}
else
{
return (sum + init(--m));
}
}
int main()
{
int n;
cin>>n;
cout<<init(n);
return 0;
}
目测无错误,递交后5WA,1RE
求挑错 |