当前位置 博文首页 > 睡觉不跑堂的博客:蓝桥杯历届试题 小数第n位(java)

    睡觉不跑堂的博客:蓝桥杯历届试题 小数第n位(java)

    作者:[db:作者] 时间:2021-09-21 18:10

    问题描述

      我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。
      如果我们把有限小数的末尾加上无限多个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.Scanner;
    
    public class PREV_52 {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int a = sc.nextInt();
    		int b = sc.nextInt();
    		int len = sc.nextInt();
    		a = a%b;
    		String str = "";
    		int i = len+2;
    		//遍历掉大量的无用数据
    		for (; i > 10; i-=7) {
    			a = a*10000000%b;
    			if(a==0){	//如果整除则直接跳出
    				break;
    			}
    		}
    		for (; i > 0; i--) {
    			if(i<=3){
    				str = str + a*10/b;	//最后三位使用字符串保存
    			}
    			if(a==0){	//如果整除则直接跳出
    				break;
    			}
    			a = a*10%b;
    		}
    		while(str.length()<3){	//将字符串的长度补到3
    			str = str + "0";
    		}
    		System.out.println(str);
    	}
    }
    

    cs
    下一篇:没有了