首页 > 试题广场 >

圆周率

[编程题]圆周率
  • 热度指数:2464 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
计算机大牛们都在拼算法,计算圆周率小数点后面的第n位。这涉及到许多除法,现在给你一个被除数和除数,请你计算小数点后n位的值。

输入描述:
输入包含多组数据。每组数据包含三个正整数:被除数a和除数b(1≤a<b≤100),以及精度n(1≤n≤1000)。


输出描述:
对应每组数据,输出a/b的结果,小数后面保留n位(不到n位的补零)。
示例1

输入

1 2 5<br/>2 3 3

输出

0.50000<br/>0.666
import java.util.Scanner;
public class Main {
        public static void main(String[] args){
                Scanner cin = new Scanner(System.in);
                int a, b, n;
                String answer;
                while(cin.hasNext()){
                        a = cin.nextInt();
                        b = cin.nextInt();
                        n = cin.nextInt();
                        answer = deliver (a,b,n);
                        System.out.println(answer);
                }
                cin.close();
        }
        private static String deliver(int a, int b, int n) {
                String answer = "";
                answer += a/b + ".";
                while(n>0){
                        answer += a*10 /b;
                        a = a*10 %b;
                        n--;
                }
                return answer;
        }        
}
//有一个弊端:
//因为用的是String而不是StringBuffer,因此要处理的数据量过大时,效率会降低。
//此时最好用StringBuffer来处理

编辑于 2017-04-29 00:03:09 回复(0)