|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
求挑错 |
|