10706 - Number Sequence
2013-03-14 23:46
225 查看
描述:题目的意思就是给你一个数,输出这个数的位置为什么数,当然,规律很简单,就是从小一直递增起来的,我的思路就是把这些数全都暴出来,然后查询就可以了 #include <cstdio> #include <cstdlib> long num[40000]; char str[1000000]; long count,n,m; void solve() { num[1]=1; count=2; str[1]='1'; for(int i=2; i<40000; i++) if(i<10) { num[i]=num[i-1]+1; str[count++]=i+'0'; } else if(i<100) { num[i]=num[i-1]+2; str[count++]=i/10+'0'; str[count++]=i%10+'0'; } else if(i<1000) { num[i]=num[i-1]+3; str[count++]=i/100+'0'; str[count++]=(i/10)%10+'0'; str[count++]=i%10+'0'; } else if(i<10000) { num[i]=num[i-1]+4; str[count++]=i/1000+'0'; str[count++]=(i/100)%10+'0'; str[count++]=(i/10)%10+'0'; str[count++]=i%10+'0'; } else { num[i]=num[i-1]+5; str[count++]=i/10000+'0'; str[count++]=(i/1000)%10+'0'; str[count++]=(i/100)%10+'0'; str[count++]=(i/10)%10+'0'; str[count++]=i%10+'0'; } } int main() { solve(); // freopen("a.txt","r",stdin); scanf("%ld",&n); while(n--) { scanf("%ld",&m); long i; for(i=1;; i++) if(m>num[i]) m-=num[i]; else break; printf("%c\n",str[m]); } return 0; }
相关文章推荐
- UVa 10706 Number Sequence
- uva 10706 Number Sequence
- UVA 10706 Number Sequence
- UVA - 10706 Number Sequence
- uva 10706 Number Sequence
- UVA 10706 Number Sequence(模拟)
- UVA 10706 - Number Sequence
- 10706 - Number Sequence
- UVA 10706 Number Sequence
- UVa 10706 - Number Sequence
- UVA - 10706 Number Sequence
- uva 10706 - Number Sequence
- 二分查找——UVa 10706 - Number Sequence
- uva 10706 Number Sequence(数学规律)
- UVA 10706 - Number Sequence
- UVA - 10706 Number Sequence
- uva 10706 Number Sequence(找规律)
- 10706 - Number Sequence
- uva 10706 Number Sequence(数学规律)
- UVa 10706 - Number Sequence