1034 - 讨厌的小数点
时间限制 : 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])]