2020年2月4日 星期二

[zerojudge]a006. 一元二次方程式

a006. 一元二次方程式

求一元二次方程式 ax2+bx+c=0 的根

解題方案:
公式解讚!先算判別式 D = b2 - 4ac
D > 0: 兩相異根
D = 0: 重根
D < 0: 無解
在開根號之後要型態轉換成int,原本是double的但是題目很貼心只會出整數。
像這種題目Two different rootsasdfh2kq3ras.f.asd什麼的就不要用手打了,直接複製題目上面的說明,免得打錯。

程式碼如下:

  1. import java.util.Scanner;
  2.  
  3. public class Pa006{
  4. public static void main(String[] args){
  5. Scanner scanner = new Scanner(System.in);
  6.  
  7. while(scanner.hasNext()){
  8. int a = scanner.nextInt();
  9. int b = scanner.nextInt();
  10. int c = scanner.nextInt();
  11.  
  12. int D = b * b - 4 * a * c;
  13. if (D > 0){
  14. System.out.printf("Two different roots x1=%d , x2=%d%n", ( -b + (int)Math.sqrt(D) ) / 2 / a, ( -b - (int)Math.sqrt(D) ) / 2 / a);
  15. }else if (D == 0){
  16. System.out.printf("Two same roots x=%d%n", -b / 2 / a);
  17. }else{
  18. System.out.println("No real root");
  19. }
  20. }
  21. }
  22. }

沒有留言:

張貼留言