UVa:12050 Palindrome Numbers
来源:互联网 发布:网络法律咨询 编辑:程序博客网 时间:2024/05/21 10:47
区间分解的问题。想想回文数是怎么构造出来的就行。
1——9,长度是9个1
11——99,长度是9个1
101——999,长度是9个10
1001——9999,长度是9个10
……
可见每次都是9个9个的,它的单位分别是1,10,100……这样。由于回文数长度可能是奇或偶,所以有两种情况。这样分解区间,然后求解就行了。
#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#define ll long long#define Lim 2000000000using namespace std;struct Segment{ ll g,L,R; int v; Segment(ll a,ll b,ll c,int d):g(a),L(b),R(c),v(d) {}};vector<Segment> vec;void Init(){ ll sum=0,g=1; while(sum<=Lim) { vec.push_back((Segment(g,sum+1,sum+9*g,1))); sum=sum+9*g; vec.push_back((Segment(g,sum+1,sum+9*g,2))); sum=sum+9*g; g=g*10; }}int Search(ll val){ for(int i=0; i<vec.size(); ++i) if(vec[i].L<=val&&val<=vec[i].R) return i;}void solve(ll val,char *str){ int u=Search(val); ll key=val-vec[u].L+vec[u].g; memset(str,0,sizeof(str)); sprintf(str,"%lld",key); if(vec[u].v==1) { for(int i=strlen(str)-2,q=strlen(str);i>=0;--i,++q) str[q]=str[i]; } else { for(int i=strlen(str)-1,q=strlen(str);i>=0;--i,++q) str[q]=str[i]; }}int main(){ ll val; Init(); while(scanf("%lld",&val)&&val) { char str[100]={0}; solve(val,str); puts(str); } return 0;}
0 0
- uva 12050 - Palindrome Numbers
- UVa:12050 Palindrome Numbers
- UVA - 12050 Palindrome Numbers
- uva 12050 - Palindrome Numbers(数论)
- UVA 12050 - Palindrome Numbers(数论+规律)
- Dhaka 2003 / UVa 12050 - Palindrome Numbers (回文数)
- Uva 12050 (POJ 2402) - Palindrome Numbers 解题报告(数学)
- UVaLIve 2889 | LA 2889 | UVa 12050 - Palindrome Numbers (组合数学)
- Palindrome Numbers
- ZOJ 2000 Palindrome Numbers
- poj 2402 Palindrome Numbers
- Palindrome Numbers(P2402)
- No. 23 - Palindrome Numbers
- POJ 2402 Palindrome Numbers
- zoj2000 Palindrome Numbers
- UVALive 2889 Palindrome Numbers
- LeetCode-Palindrome Numbers
- 9. Palindrome Numbers
- HDU 1181 变形课
- Longest Consecutive Sequence
- 『黑马程序员』---java--IO--字节流基础
- LINUX 远程复制
- 【Sesame】查询与修改数据
- UVa:12050 Palindrome Numbers
- linux opencv支持视频安装
- [Catalan] HDU 2067 小兔的棋盘
- 计算机程序设计艺术 卷一 3
- Confluence 修改历史(Change-History)宏
- Java那些事儿之线程安全
- 特殊四位数
- 再熟悉一下Eclipse快捷键
- 【20140206】曼昆著《经济学原理》读书笔记