NOIP学习之循环控制:9.求小数的某一位

测试链接
总时间限制: 1000ms 内存限制: 65536kB
描述
分数a/b化为小数后,小数点后第n位的数字是多少?

输入
三个正整数a,b,n,相邻两个数之间用单个空格隔开。0 < a < b < 100,1 <= n <= 10000。
输出
一个数字。
样例输入
1 2 1
样例输出
5
思路
开始我直接想到了用a/b算出小数后,按照求n位就是乘以10的n次幂,再对10取模求解,发现n可以取10000,数据一大,double就会有误差。后来想到了求小数就是将被除数和除数取余,舍去整数值,这样计算就简单了,然后去多少位整数就是10的n次幂,在对除以b取整,就算出小数位了。

#include<iostream>

using namespace std;
int main()
{	int a,b,n;

	cin>>a>>b>>n;
	for(int i=1;i<=n;i++)
	{
		a%=b;
		a*=10;				
	}
	a/=b;
	cout<<a;
	return 0;
}

发布了22 篇原创文章 · 获赞 0 · 访问量 157

猜你喜欢

转载自blog.csdn.net/wlxiong/article/details/104266586
今日推荐