1 条题解
-
0
不多说了,真的很简单 思路大致是枚举,逐位取余然后判断 直接上代码
#include <bits/stdc++.h> using namespace std; int n,s,a[100001],num=0; bool broke(int x,int k) { int len=1; while (x>0){ a[len]=x%k; x/=k; len++; } len--; for (int i=1;i<=len/2;i++){ if (a[i]!=a[len-i+1]){ return 0; } } return 1; } int main() { cin>>n>>s; while (num!=n){ s++; int cnt=0; for (int i=2;i<=10;i++){ if (broke(s,i)){ cnt++; } if (cnt==2){ break; } } if (cnt==2){ cout<<s<<endl; num++; } } }
信息
- ID
- 11
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 11
- 已通过
- 6
- 上传者