Uva - 12050 Palindrome Numbers【数论】
2017-07-04 10:15
357 查看
题目链接:uva 12050 - Palindrome Numbers
题意:求第n个回文串 思路:首先可以知道的是长度为k的回文串个数有9*10^(k-1),那么依次计算,得出n是长度为多少的串,然后就得到是长度为多少的第几个的回文串了,有个细节注意的是, n计算完后要-1!
下面给出AC代码:#include <bits/stdc++.h> typedef long long ll; using namespace std; const int maxn=3010; ll num[maxn]; int n,ans[maxn]; void init() { num[0]=0,num[1]=num[2]=9; for(int i=3;i<20;i+=2) num[i]=num[i+1]=num[i-1]*10; } int main() { init(); while(scanf("%d",&n)&&n) { int len=1; while(n>num[len]) { n-=num[len]; len++; } n--; int cnt=len/2+1; while(n) { ans[cnt++]=n%10; n/=10; } for(int i=cnt;i<=len;i++) ans[i] = 0; ans[len]++; for(int i=1;i<=len/2;i++) ans[i]=ans[len-i+1]; for(int i=1;i<=len;i++) printf("%d",ans[i]); printf("\n"); } return 0; }
相关文章推荐
- UVA 12050 - Palindrome Numbers(数论+规律)
- uva 12050 - Palindrome Numbers(数论)
- UVA 10622 - Perfect P-th Powers(数论)
- Uva10375 Choose and divide(数论、唯一分解定理、快速幂)
- UVA 10692 - Huge Mods(数论)
- uva 10844 - Bloques(数论+高精度)
- uva 1434 - YAPTCHA(数论)
- UVa10484 - Divisibility of Factors(数论)
- UVA 10548 - Find the Right Changes(数论)
- [UVA1434] YAPTCHA(数论,威尔逊定理)
- UVA 550 (暑假-数论 -B - Multiplying by Rotation)
- UVa 10892 LCM Cardinality (数论&素因子分解)
- 【数论】UVa 11526 - H(n)
- 【数论】Disgruntled Judge, NWERC 2008, UVa12169
- 紫书数论例题10-5 uva 12716 找规律
- UVA 1363 Joseph's Problem(数论)
- uva 10692 - Huge Mods(数论)
- UVA 10892 LCM Cardinality(数论 质因数分解)
- UVA10079 - Pizza Cutting(数论)
- UVA 11889 - Benefit(数论)