题目
题解
枚举全部的 5 位数和 6 位数;先判断各位之和是否为输入的n
,若满足,6 位数判断最高位和最低位、次高位和次低位、次次高位和次次低位是否一致,5 位数判断最高位和最低位、次高位和次低位是否一致。
代码
#include<bits/stdc++.h>
using namespace std;
int n, cnt;
int main()
{
cin>>n;
for(int i = 10000;i < 10000000;i ++) {
int x = i, sum = 0;
while(x) {sum+=x%10; x/=10;}
if(sum != n) continue; // 每位之和不是 n ,continue
if(i/100000) { // 6位
// 判断最高位和最低位、次高位和次低位、次次高位和次次低位是否一致
if(i/100000 == i%10 && i/10000%10 == i/10%10 && i/1000%10 == i/100%10) cnt++, cout<<i<<endl;
} else { // 5位
// 判断最高位和最低位、次高位和次低位是否一致
if(i/10000 == i%10 && i/1000%10 == i/10%10) cnt++, cout<<i<<endl;
}
}
if(!cnt) puts("-1");
return 0;
}