游客 Signup | Login
中文 | En

2871 - 【创新型】第10章: 字符串 10.25 调皮的小数点

小明一直很讨厌小数点,一看到小数点就头疼。不幸的是,小红给他出了一个题目,问他:

给你一个小数x,你能算出小数点后第n位是什么吗?(1<=n<=20)
小明看到此题后,瞬间头疼晕倒,你能帮帮他吗?

Input

首先输入一个t,表示有t组数据(数据不超过10组)跟着t行:

每行输入一个小数(输入数据保证一定是a.b的形式,为了简单化问题,没有循环小数的情况),
然后跟一个n,表示小数点后第几位。

Output

输出一个数表示小数点后第n位的数,如果输入的小数点后第n位数不存在则输出“Error”。

Examples

Input

3
1.234 1
2.345 6
3.456 3

Output

2
Error
6

Solution C

#include<stdio.h>
#include<string.h>
int main()
{
	char x[10][25];
	int i,j,l[10],y[10],n;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		getchar();
		scanf("%s %d",x[i],&y[i]);
		l[i]=strlen(x[i]);
	}
	for(i=0;i<n;i++)
	{
		if(y[i]>l[i]-2)	printf("Error");
		else	printf("%c",x[i][y[i]+1]);
		if(i!=n-1)
		printf("\n");
	}
}

Solution C++

#include<bits/stdc++.h>
using namespace std;
int n;
string a;
double s;
int wz,ss,flag,y;
int main()
{
	cin>>n;
	getchar();
	for(int i=1;i<=n;i++)
	{
		cin>>a;
		cin>>s;
		for(int j=0;j<a.size();j++)
		{
			if(a[j]=='.')
				flag=1;
			if(flag==0)y++;
		}
		if(y+1+s<=a.size())cout<<a[s+1]<<endl;
		else cout<<"Error"<<endl;
		flag=0;
		ss=0;
		y=0;
	}
   return 0;
}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题