uva10706Number Sequence
来源:互联网 发布:高大上简历 知乎 编辑:程序博客网 时间:2024/06/03 22:06
uva越来越不稳定了,疑惑的是翻墙出去都打不开uva,只能用chrome31。。。而且vj也交不上去,有种想换oj的冲动。
比较简单,不解释。
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;long long n;long long get(long long i){ long long sum=0,j=0,help; while(i>0) { sum+=i; help=9*int(pow(10,j)); if(i>=help) { i-=help; } else { i=0; } j++; } return sum;}void gettt(long long digit,long long dit){ char t[20]; sprintf(t,"%lld",dit); //printf("%d\n",dit); //for(int i=0;i<20;i++) // printf("%d ",t[i]); //printf("a%lld %s\n",dit,t); putchar(t[digit-1]); printf("\n");}void fun(long long i,long long all){ long long j,t; for(j=1;j<=i;j++) { if(j<10) t=1; else if(j<100) t=2; else if(j<1000) t=3; else if(j<10000) t=4; else if(j<100000) t=5; else if(j<1000000) t=6; else if(j<10000000) t=7; else if(j<100000000) t=8; else if(j<1000000000) t=9; if(all+t>n) { //printf("cc%dcc\n",j); gettt(n-all,j); break; } else if(all+t==n) { printf("%lld\n",j%10); break; } all+=t; }}void solve(){ long long i,j,all=0; for(i=1;;i++) { j=get(i); //printf("jj%d",j); if(j+all>n) { //printf("bb%dbb\n",i); fun(i,all); break; } else if(j+all==n) { printf("%d\n",i%10); break; } all+=j; }}int main(){ long long t; //for(int i=1;i<1000;i++) // printf("%d\n",i); //printf("%lld",9e1); scanf("%lld",&t); while(t--) { scanf("%lld",&n); solve(); } return 0;}
0 0
- uva10706Number Sequence
- sequence
- SEQUENCE
- Sequence
- sequence
- sequence
- Sequence
- sequence
- sequence
- sequence
- Sequence
- Sequence
- Sequence
- Sequence
- sequence
- sequence
- sequence
- Sequence
- 王利芬语录
- 网络编程学习笔记(服务器端进程终止)
- Hello world
- 博客中使用latex写公式
- HDU 5012 Dice bfs
- uva10706Number Sequence
- 自定义判重器,清除List集合中的重复元素。众所周知,List集合元素可重复。
- 编程语言的运行效率问题?C++:java/C#
- Ofbiz入门
- 动态地改变Python搜索路径
- das 2.0开发记录
- Hibernate Tools for Eclipse的使用
- nyoj_56_70_阶乘因式分解
- shell find->while