hdu 1597 find the nth digit

find the nth digit

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 8356    Accepted Submission(s): 2383

Problem Description

假设:

S1 = 1

S2 = 12

S3 = 123

S4 = 1234

.........

S9 = 123456789

S10 = 1234567891

S11 = 12345678912

............

S18 = 123456789123456789

..................

现在我们把所有的串连接起来

S = 1121231234.......123456789123456789112345678912.........

那么你能告诉我在S串中的第N个数字是多少吗?

Input

输入首先是一个数字K,代表有K次询问。

接下来的K行每行有一个整数N(1 <= N < 2^31)。

Output

对于每个N,输出S中第N个对应的数字.

Sample Input

6
1
2
3
4
5
10

Sample Output

1
1
2
1
2
4

AC代码:

#include<stdio.h>
#include<iostream>
using namespace std;
int main ()
{
	int T,n;
	int i,j;
	for(i=1;i<n;i++)
             n-=i;
	if(n%9)
		cout<<n%9<<endl;
	else
		cout<<9<<endl;

	}
   return 0;
}

自己写的代码,只能处理小范围的数据

#include<stdio.h>
#include<iostream>
using namespace std;
int main ()
{
	int T,n;
	int i,j,k;
	__int64 a[10000],sum[10000];
	memset(sum,0,sizeof(sum));

	for(i=1;i<=10000;i++)
		sum[i]=(1+i)*i/2;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&n);
		for(i=1;i<=10000;i++)
		{
			if(sum[i]<n && n<sum[i+1])
			{
				k=(n-sum[i])%9;
				break;
			}
			if(sum[i]==n)
			{
				k=i%9;
				break;
			}
		}
		if(k==0)
			cout<<9<<endl;
		else
			cout<<k<<endl;

	}
	return 0;
}

hdu 1597 find the nth digit

时间: 2024-08-27 04:02:54

hdu 1597 find the nth digit的相关文章

find the nth digit(二分查找)

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1597 find the nth digit Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9517    Accepted Submission(s): 2757 Problem Description 假设:S1 = 1S2 = 12S3

(hdu step 4.1.5)find the nth digit(求S串中的第n个位置上是什么数字)

题目: find the nth digit Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 689 Accepted Submission(s): 244   Problem Description 假设:S1 = 1S2 = 12S3 = 123S4 = 1234.........S9 = 123456789S10 = 123456789

leetcode 400 Add to List 400. Nth Digit

Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... Note:n is positive and will fit within the range of a 32-bit signed integer (n < 231). Example 1: Input: 3 Output: 3 Example 2: Input: 11 Output: 0 Explanation

400. Nth Digit 第N位

Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... Note:n is positive and will fit within the range of a 32-bit signed integer (n < 231). Example 1: Input:3Output:3 Example 2: Input:11Output:0Explanation:The 11

400. Nth Digit(LeetCode)

Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... Note:n is positive and will fit within the range of a 32-bit signed integer (n < 231). Example 1: Input: 3 Output: 3 Example 2: Input: 11 Output: 0 Explanation

400. Nth Digit

Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... Note: n is positive and will fit within the range of a 32-bit signed integer (n < 231). Example 1: Input: Output: Example 2: Input: Output: Explanation: The 11

Leetcode: Nth Digit

Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... Note: n is positive and will fit within the range of a 32-bit signed integer (n < 231). Example 1: Input: 3 Output: 3 Example 2: Input: 11 Output: 0 Explanatio

[LeetCode] Nth Digit 第N位

Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... Note: n is positive and will fit within the range of a 32-bit signed integer (n < 231). Example 1: Input: 3 Output: 3 Example 2: Input: 11 Output: 0 Explanatio

find the nth digit

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9518    Accepted Submission(s): 2758 Problem Description 假设: S1 = 1 S2 = 12 S3 = 123 S4 = 1234 ......... S9 = 123456789 S10 = 1234567891 S11 = 12