小数第 n 位
问题描述
我们知道, 整数做除法时, 有时得到有限小数, 有时得到无限循环小数.
如果我们把有限小数的末尾加上无限多个 0, 它们就有了统一的形式.
本题的任务是: 在上面的约定下, 求整数除法小数点后的第 n 位开始的 3 位数.
输入格式
一行三个整数: a b n, 用空格分开. a 是被除数, b 是除数, n 是所求的小数后位置 (0<a,b,n<1000000000)
输出格式
- #include<iostream>
- using namespace std;
- int main()
- {
- // 一定要用 long long 类型
- long long a, b, n;
- while(cin>>a>>b>>n)
- {
- while(n -10> 0)
- {
- a *= 1e10; // 快速逼近
- a %= b;
- n -= 10;
- }
- for(int i=1;i<n+3;i++){
- a *= 10;
- if(i>= n)
- cout<<a/b;
- a %= b;
- }
- cout<<endl;
- }
- return 0;
- }
- View Code
来源: http://www.bubuko.com/infodetail-2915313.html