历届试题 小数第n位

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zxk_hi/article/details/86631719

问题描述

  我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。
  如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。


  本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数。

输入格式

  一行三个整数:a b n,用空格分开。a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000)

输出格式

  一行3位数字,表示:a除以b,小数后第n位开始的3位数字。

样例输入

1 8 1

样例输出

125

样例输入

1 8 3

样例输出

500

样例输入

282866 999000 6

样例输出

914

import java.util.*;
import java.math.*;
import java.io.*;

public class Main {
   public static void main(String[] args) {
	   Scanner input =new Scanner(System.in);
	   long a=input.nextLong();
	   long b=input.nextLong();
	   int n=input.nextInt();
	   int sum=n-1,j=10;
	   while(sum>0) {
		   if(sum>=j) {
			   a*=Math.pow(10,j);
			   long shan=(long)a/b;
			   a-=(shan*b);
			   sum-=j;
		   }else {
			   while(sum<j&&sum>0) {
				   j--;
			   }
		   }
	   }
	   for(int i=1;i<=3;i++) {
		   a*=10;
		   long shan=a/b;
		   a-=shan*b;
		   System.out.print(shan);
	   }
	   System.out.println();
   }
}

猜你喜欢

转载自blog.csdn.net/zxk_hi/article/details/86631719