Java中如何实现2s²(1+√2)?地板面积计算代码纠错
Java中正确实现公式2s²(1 + √2)的方法
问题分析
你当前代码的错误在于对公式的拆解有误:
double sForArea = s * 2; double floorArea = (Math.pow(sForArea, 2)*(1 + Math.sqrt(2)));
这段代码实际计算的是(2s)²(1+√2),也就是4s²(1+√2),和目标公式2s²(1+√2)相比,结果多乘了2,所以面积计算不正确。
正确的公式写法
有两种简洁且准确的实现方式:
- 直接通过乘法运算实现(性能略优,避免调用
Math.pow):
double floorArea = 2 * s * s * (1 + Math.sqrt(2));
- 使用
Math.pow贴合公式结构(可读性更强):
double floorArea = 2 * Math.pow(s, 2) * (1 + Math.sqrt(2));
完整的Scanner输入示例代码
import java.util.Scanner; public class FloorAreaCalculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入s的值:"); double s = scanner.nextDouble(); // 使用推荐的公式计算 double floorArea = 2 * s * s * (1 + Math.sqrt(2)); System.out.println("地板面积为:" + floorArea); scanner.close(); } }
内容的提问来源于stack exchange,提问作者Cameron Cross
相关产品推荐
相关产品推荐

