关闭

POJ-1019(变繁琐打表为简单循环)(Number Sequence)

405人阅读 评论(0) 收藏 举报
分类:
/*==========================================================*\
| 11212312341234512345612345671234567812345678912345678910
| 求第n个数字。
| 首先求出在那一组,其中[1],[12][123]等是一组
| 然后求出在哪一个数,最后确定哪一位
\*==========================================================*/
int main()
{
	int t;
	scanf("%d", &t);
	while (t--) {
		int n;
		scanf("%d", &n);
		int i = 1, j = 1, k;
		while (n > i) {//找出在哪一组
			n -= i;
			++j;
			int tmp = j;
			//i = 0;这句没有,很重要
			while (tmp) {
				tmp /= 10;
				++i;
			}
		}
		i = j = 1;
		while (n > i) {//找出在哪一个
			n -= i;
			++j;
			int tmp = j;
			i = 0;
			while (tmp) {
				tmp /= 10;
				++i;
			}
		}
		for (k = 0; k < i - n; ++k)//找出在哪一位
			j /= 10;
		printf("%d\n", j % 10);
	}
    return 0;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:294546次
    • 积分:4117
    • 等级:
    • 排名:第7520名
    • 原创:200篇
    • 转载:11篇
    • 译文:0篇
    • 评论:52条
    最新评论