#29474: Java Ac 想法 and code


wer12369qaz15963@gmail.com (dentr)

學校 : 新北市立清水高中
編號 : 174903
來源 : [111.248.152.60]
最後登入時間 :
2022-07-26 15:13:49
b893. 勘根定理 -- 板橋高中教學題 | From: [219.84.98.239] | 發表日期 : 2022-03-05 12:51

要注意的地方 下面的討論已經 夠詳細了 就不多贅述

1.判斷是不是無限根  無限根換成圖的話就是 一條橫線   所以 把 x=-35 跟 x= 35 的式子 相乘 看是不是等於0 若是 可知兩點之間為 一條直線 

2. -35 到 35 都代入一遍 看 是不是跟下一個數字 為相異數 是則貼出

其他自己想就好

 

很建議自己打過一遍(這題只是需要注意的地方很多): 

import java.util.Scanner;

public class b893 {
static long a,b,c,d,e,f;
static boolean ans = false;
public static void main(String[]args){
Scanner input = new Scanner(System.in);
while (input.hasNextInt()){
a = input.nextLong();
b = input.nextLong();
c = input.nextLong();
d = input.nextLong();
e = input.nextLong();
f = input.nextLong();
if (number(-35)*number(35)==0){
System.out.println("Too many... = =\"");
break;
}
result(-35);
if (!ans){
System.out.println("N0THING! >\\\\\\<");
}

}
}
public static long number(int x){
return (a*(long)Math.pow(x,5))+ (b*(long)Math.pow(x,4))+(c*(long)Math.pow(x,3))+(d*(long)Math.pow(x,2))+(e*x)+f;
}
public static void result (int x){
if (number(x)==0){//檢查單個數字是不是根
System.out.printf("%d %d\n",x,x);
ans= true;
}
if (x >=35){
return;
}
if (number(x)*number(x+1)<0){
System.out.printf("%d %d\n",x,x+1);
result (x+1);
ans = true;
} else {
result(x+1);
}
}
}
 
ZeroJudge Forum