gpt4 book ai didi

Java- 在公式方面需要帮助

转载 作者:行者123 更新时间:2023-11-29 05:37:02 24 4
gpt4 key购买 nike

我最近在这里发帖,但我再次需要帮助(我是新手)我得到了第一部分 (SSS) 但它是第二部分我需要帮助,我不明白如何把 a² = b² + c² - 2bc cosA in 和 sin B/b = sin A/a 这是我的代码:

import java.util.Scanner;

public class CosineLaw {

public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
boolean sss = new Boolean(true);

System.out.println("Are you working with an SSS?[y/n]");
char askingSSS =keyboard.next().charAt(0);
if(askingSSS == 'y'){
System.out.println("Please enter an a side value:");
double a = keyboard.nextDouble();
System.out.println("Please enter a b side value:");
double b = keyboard.nextDouble();
System.out.println("Please enter a c side value:");
double c = keyboard.nextDouble();
double answerA = Math.toDegrees(Math.acos((b*b+c*c-a*a) / (2*b*c)));
double answerB = Math.toDegrees(Math.acos((c*c+a*a-b*b) / (2*c*a)));
double answerC = Math.toDegrees(Math.acos((b*b+a*a-c*c) / (2*b*a)));
System.out.println("A: " + answerA);
System.out.println("B: " + answerB);
System.out.println("C: " + answerC);

}else if(askingSSS == 'n'){
System.out.println("Are you working with SAS?[y/n]");
char askingSAS =keyboard.next().charAt(0);
System.out.println("Please enter the 2 sides and 1 angle:");
char twoSideOneAngle =keyboard.next().charAt(0);
if(askingSAS == 'y'){
System.out.println("Please enter an angle for a:");
double a = keyboard.nextDouble();
System.out.println("Please enter a side value for b:");
double b = keyboard.nextDouble();
System.out.println("Please enter a side value for c:");
double c = keyboard.nextDouble();
double answerA = Math.cos(Math.toDegrees(b*b+c*c-2*b*c)*(a));
double answerB = Math.sin(Math.toDegrees(sin b/b = sin a/a));
double answerC = (b*b+a*a-c*c) / (2*b*a);
System.out.println("A: " + answerA);
System.out.println("B: " + answerB);
System.out.println("C: " + answerC);
}
}
}

最佳答案

看起来您将所有内容都放在了 cos 和 sin 中。首先简化方程。

a² = b² + c² - 2bc cosA 变为 a = (b² + c² - 2bc cosA)^(1/2)。然后你可以从内到外工作。

在伪代码中:

answer = cos(A)
answer = answer * 2 * b * c
answer += b*b
answer += c*c
answer = sqrt(answer)

类似地,如果您在 sinB/b = sinA/a 中寻找 B,则这将变为 B = arcsin(b*sinA/a):

answer = sin(A)
answer = b * answer
answer = answer/a
answer = arcsin(answer)

您可能还想回顾一下您的一些逻辑。

else if(askingSSS == 'n'){
System.out.println("Are you working with SAS?[y/n]");
char askingSAS =keyboard.next().charAt(0);
if(askingSAS == 'y'){
// I change code here
System.out.println("Please enter the 2 sides and 1 angle:");
char twoSideOneAngle =keyboard.next().charAt(0);
System.out.println("Please enter an angle for a:");
double a = keyboard.nextDouble();
System.out.println("Please enter a side value for b:");
double b = keyboard.nextDouble();
System.out.println("Please enter a side value for c:");
double c = keyboard.nextDouble();
double answerA = Math.cos(Math.toDegrees(b*b+c*c-2*b*c)*(a));
double answerB = Math.sin(Math.toDegrees(sin b/b = sin a/a));
double answerC = (b*b+a*a-c*c) / (2*b*a);
System.out.println("A: " + answerA);
System.out.println("B: " + answerB);
System.out.println("C: " + answerC);
}
}

这会更有意义,因为您正在检查的角色现在是回答相关问题的角色。

关于Java- 在公式方面需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19128462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com