作业帮 > 综合 > 作业

密率为355/113,证明密率是15000以内的分数中表示圆周率最精确的分数,试编程证

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 06:48:02
密率为355/113,证明密率是15000以内的分数中表示圆周率最精确的分数,试编程证
不知道你要用那种语言啊?我用的java测试通过了
public class Test{
    static final double PI=3.1415926535897;//常量圆周率
    static final double MI=355.0/113.0;//常量密率
    public static boolean compare(){//定义比较函数
        boolean flag=true;
        for(int i=0;i<=15000;i++)//15000以内
            for(int j=1;j<=i/3.0;j++)//i/3.0是排除所有小于3的分数参加比较,可以提高效率
                if(Math.abs(i/j-PI)<=(MI-PI)){//Math.abs是取绝对值
                    System.out.print(i+"/"+j+"\t");//如果有更精确的会在此输出
                    flag=false;
                }
    return flag;//返回密率是否为最精确的数
    }
    public static void main(String[] args){//主函数
        if(compare())
            System.out.print("15000以内的不存在表示圆周率比密率精确的分数\n");
        else
            System.out.print("以上分数表示圆周率比密率精确");
\x05}
}