POJ-2402(Palindrome Numbers)
来源:互联网 发布:华星网络报销系统 编辑:程序博客网 时间:2024/05/18 01:52
【题目描述】
求第n个回文数
【解题思路】
首先求出一共k位长的数一共多少个回文,然后对半开
/* list[i]表示位数为i的满足回文数要求共有list[i]个 */ll List[20] = {0, 9, 9, 90, 90, 900, 900, 9000, 9000, 90000, 90000, 900000, 900000, 9000000, 9000000, 90000000, 90000000, 900000000, 900000000, 9000000000};int main(){ll n, sum;int i;while (cin>>n && n) {sum = 0;for (i = 1; i <= 19; ++i) {/* i表示位数 */if (sum + List[i] >= n)//i表示位数break;sum += List[i];}string str(i, '0');str[0] = str[i - 1] = '1';n = n - sum - 1;if (i == 1) {str[0] += n;} else {int index = -1, s = (int)pow(10.0, (i - 2) / 2 + (i - 2) % 2);for ( ; s >= 1 && n != 0 ;s /= 10) {index++;if (n < s)continue;str[index] += n / s;/* 不能写成=n/s,因为最外层的str[0],str[i-1]起始值是1 */str[i - 1 - index] = str[index];n %= s;}}cout<<str<<endl;}return 0;}
- POJ-2402(Palindrome Numbers)
- poj 2402 Palindrome Numbers
- POJ 2402 Palindrome Numbers
- POJ 2402 Palindrome Numbers
- poj 2402 Palindrome Numbers
- POJ 2402 Palindrome Numbers 笔记
- POJ 2402 Palindrome Numbers(LA 2889) 回文数
- Uva 12050 (POJ 2402) - Palindrome Numbers 解题报告(数学)
- poj 2402,LA2889 Palindrome Numbers(数学)
- Palindrome Numbers(UVALive 2889)
- Palindrome Numbers
- POJ-1159(Palindrome)
- UVA 12050 - Palindrome Numbers(数论+规律)
- POJ 1159-Palindrome(DP)
- Cheapest Palindrome.(POJ-3280)
- POJ 1159 Palindrome (LCS)
- Cheapest Palindrome(poj 3280)
- POJ 3974 Palindrome(manacher)
- wp7开发第一课:软件生命周期(其一)
- unix 时间的相关函数
- GIF,JPG,PNG:WEB开发中图片格式的合理选择
- 浅谈C++静态变量
- WP7开发第一课:软件生命周期(其二)
- POJ-2402(Palindrome Numbers)
- Solve java.util.MissingResourceException: Can't find bundle for base name com...config, locale zh_CN
- 英文文献阅读有感
- ORM 系列:概述
- 类型转换
- 数组初始化
- 免费注册参加"使用表格控件EJunGrid,实现企业级表单的录入与展现" 网络研讨会!
- Android Property System
- 一位女程序员的故事