问题 N: 讨厌的小数点
时间限制: 1 Sec 内存限制: 32 MB
提交: 311 解决: 89
题目描述
小明一直很讨厌小数点,一看到小数点就头疼。不幸的是,小红给他出了一个题目,问他:
给你一个小数x,你能算出小数点后第n位是什么吗?(1<=n<=6)
小明看到此题后,瞬间头疼晕倒,你能帮帮他吗?
输入
首先输入一个t,表示有t组数据,跟着t行:
每行输入一个小数(输入数据保证一定是a.b的形式,为了简单化问题,没有循环小数的情况),
然后跟一个n,表示小数点后第几位。
输出
输出一个数表示小数点后第n位的数。
样例输入 Copy
3 1.234 1 2.345 2 3.456 3
样例输出 Copy
2 4 6
代码
提示:要考虑输出0的情况
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
int T;
scanf("%d",&T);
getchar();
string s;
int num;
for(int i = 0;i < T;i++){
cin>>s;
getchar();
cin>>num;
getchar();
int j;
int len=s.size();
if(num>=1&&num<=6){
for(j = 0;;j++){
if(s[j]=='.'){
break;
}
}
if((len-(j+1))<num){
printf("%d\n",0);
}
else{
printf("%d\n",s[j+num]-'0');
}
}else{
i--;
continue;
}
}
}