UVA 12050 - Palindrome Numbers(数论+规律)
2014-04-13 12:52
381 查看
题目链接:12050 - Palindrome Numbers
题意:求第n个回文数是多少。思路:在纸上写出来发现,有规律,是9个9个然后90个90个然后900个900个增加的,每个位置进一位数,知道这个后就好办了,先确定在第几位数,然后第几个,求出来即可。
代码:
#include <stdio.h> #include <string.h> int n, tab[105], tn, i, mi[105]; void table() { int s = 9; for (tn = 1; ; tn++) { tab[tn] = tab[tn - 1] + s; if (tn % 2 == 0) s *= 10; if (tab[tn] == 1999999998) break; } mi[0] = 1; for (int i = 1; i <= 10; i++) mi[i] = mi[i - 1] * 10; } void f(int num) { int ans[15], ansn = 0; while (num) { ans[ansn++] = num % 10; num /= 10; } for (int i = 0; i < ansn; i++) printf("%d", ans[i]); printf("\n"); } int main() { table(); while (~scanf("%d", &n) && n) { for (i = 1; i <= tn; i++) { if (n <= tab[i]) break; } int num = n - tab[i - 1] + mi[(i - 1) / 2] - 1; printf("%d", num); if (i == 1) { printf("\n"); continue; } if (i % 2) num /= 10; f(num); } return 0; }
相关文章推荐
- UVa 10229 - Modular Fibonacci(数论,规律)
- 【数论 && 找规律】UVA 11752 The Super Powers
- 【数论,找规律】Uva 11526 - H(n)
- UVa 10940 - Throwing cards away II(数论,规律)
- UVA 550 Multiplying by Rotation 数论的规律
- Uva - 12050 Palindrome Numbers【数论】
- 找规律(约瑟夫的数论问题,uva 1363)
- 紫书数论例题10-5 uva 12716 找规律
- UVA 10519 - !! Really Strange !!(数论,规律)
- uva 12050 - Palindrome Numbers(数论)
- Colossal Fibonacci Numbers! UVA - 11582 (数论,幂求模,规律周期)
- UVA 12716 GCD XOR (数论,规律)
- UVA 10951 - Polynomial GCD(数论)
- UVA 1415 - Gauss Prime(数论,高斯素数拓展)
- UVA 11024 - Circular Lock(数论+推理)
- uva 10140 - Prime Distance(数论)
- UVA 10706 Number Sequence (找规律 + 打表 + 查找)
- UVA 11549 - Calculator Conundrum(模拟+周期规律)
- UVA 1426 - Discrete Square Roots(数论)
- UVA 12716 GCD XOR (数论 gcd和异或不等式)