type
Post
status
Published
date
Mar 20, 2020
slug
暴力求解a的开方
summary
暴力求解a的开方
tags
java
数学
category
java
icon
password
Property
Jul 11, 2022 12:51 PM
java本身有Math.sqrt函数来计算开方,但是我想自己编一个算法计算一个数的开方。 思路是将这个数(a)循环减去0.001,把得到的数平方,再与a比较,得到与开方比较接近的数,但是速度太慢。
package 计算; /*** * 精度为百万分之一; * 千位以内运算速度小于4秒; */ import java.util.Scanner; public class 求a的开方 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入a的值:"); int a = scanner.nextInt(); long t1 = System.currentTimeMillis(); double result = root1(a); System.out.println("答案是:" + result); long t2 = System.currentTimeMillis(); System.out.println("对照是:"+(Math.sqrt(a))); System.out.printf("费时:%s%n", t2 - t1); } static double root1(int a) { double q=a/2 ; if (a<=5){ q=a; } int e = 0; double result = 1; for (int w = a; w > 0; w--) { if (w * w == a) { result = w; e = 1; } } if (e == 0) { while (q * q > a) { q = q - 0.000001; result = q; } } return (result); } }
减去的数越小,精度越高,但计算量越大。
简单的利用正2的a次方边形求圆周率的方法java简单的猜拳小游戏

  • Waline
  • Giscus