题目描述给你一个小数x,让你算出小数点后第n位是什么,1 <= n <= 6。
输入首先输入一个t,表示有t组数据,跟着t行:
每行输入一个小数(输入数据保证一定是a.b的形式,总长度不超过100。为了简单化问题,没有循环小数的情况),然后跟一个n,表示小数点后第几位。
输出输出一个整数,表示小数点后第n位的数。
样例输入3
1.234 1
2.345 2
3.456 4
样例输出2
4
0
#include<stdio.h>
#include<string.h>
int main(){
int t;
int n, k, i;
char a[101], ch;
scanf("%d", &t);
while (t--){
scanf("%s", a);
scanf("%d", &n);
for (i = 0; i <= strlen(a) - 1; i++)
{
if (a[i] == '.')
{
k = i; //记录小数点的位置
break;
}
}
int len = strlen(a);
if ((k + n) < len)
printf("%c\n", a[k + n]); //输出小数点后n位的字符
else
printf("0\n");
}
return 0;
}
STL
#include<iostream>
using namespace std;
int main(){
int t;
cin >> t;
while (t--){
string a;
int k;
cin >> a;
cin >> k;
if (a.size() - 1 - a.find('.') < k)cout << "0" << endl;
else
cout << a[a.find('.') + k] << endl;
}
return 0;
}