1034 - 讨厌的小数点

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

小明一直很讨厌小数点,一看到小数点就头疼。不幸的是,小红给他出了一个题目,问他:
给你一个小数x,你能算出小数点后第n位是什么吗?(1<=n<=6)
小明看到此题后,瞬间头疼晕倒,你能帮帮他吗?

题目输入

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

题目输出

输出一个数表示小数点后第n位的数。

输入/输出样例

输入格式

3
1.234 1
2.345 2
3.456 3

输出格式

2
4
6

C语言解答

#include<stdio.h>
#include<string.h>

int main()
{
	int t,i,n;
	char a[100];
	scanf("%d",&t);
	while(t--)
	{
		memset(a,'0',sizeof(a));
		scanf("%s%d",a,&n);
		for(i=0,a[strlen(a)]='0';;i++)
			if(a[i]=='.')
				break;
		printf("%c\n",a[i+n]);
	}
	return 0;
}

C++解答

#include<stdio.h>
#include<string.h>

int main()
{
	int t,i,n;
	char a[100];
	scanf("%d",&t);
	while(t--)
	{
		memset(a,'0',sizeof(a));
		scanf("%s%d",a,&n);
		for(i=0,a[strlen(a)]='0';;i++)
			if(a[i]=='.')
				break;
		printf("%c\n",a[i+n]);
	}
	return 0;
}

Java解答

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int t = Integer.parseInt(in.nextLine());
		while(t-->0){
			String s = in.nextLine();
			String[] ss = s.split(" ");
			int cou = Integer.parseInt(ss[1]);
			String[] ss1 = ss[0].split("\\.");
			try{
				System.out.println(ss1[1].charAt(cou-1));
			}catch( java.lang.StringIndexOutOfBoundsException e){
				System.out.println(0);
			}
		}
	}

}

Python解答

times = int(raw_input())
while times > 0:
	times -= 1
	number = raw_input()
	if int(number[-1]) > (number.index(' ') - number.index('.') - 1):
		print 0
	else:
		print number[number.index('.') + int(number[-1])]