#include<iostream>
#include<math.h>
using namespace std;
int main(){
int a,b,c,d,e;
while(cin>>a>>b>>c){
d=(-b+sqrt(b*b-4*a*c))/2*a;
e=(-b-sqrt(b*b-4*a*c))/2*a;
if((b*b-4*a*c)>0){
cout<<"Two different roots x1="<<d<<" , x2="<<e<<endl;
}else if((b*b-4*a*c)==0){
cout<<"Two same roots x="<<d<<endl;
}else{
cout<<"No real root"<<endl;
}
}
return 0;
}
#include
#include
using namespace std;
int main(){
int a,b,c,d,e;
while(cin>>a>>b>>c){
d=(-b+sqrt(b*b-4*a*c))/2*a;
e=(-b-sqrt(b*b-4*a*c))/2*a;
if((b*b-4*a*c)>0){
cout<<"Two different roots x1="<<d<<" , x2="<<e<<endl;
}else if((b*b-4*a*c)==0){
cout<<"Two same roots x="<<d<<endl;
}else{
cout<<"No real root"<<endl;
}
}
return 0;
}
重根的時候 直接-b/2*a 就好了 能自己算的別依賴電腦 畢竟他是瑕疵品
#include
#include
using namespace std;
int main(){
int a,b,c,d,e;
while(cin>>a>>b>>c){
d=(-b+sqrt(b*b-4*a*c))/2*a;
e=(-b-sqrt(b*b-4*a*c))/2*a;
if((b*b-4*a*c)>0){
cout<<"Two different roots x1="<<d<<" , x2="<<e<<endl;
}else if((b*b-4*a*c)==0){
cout<<"Two same roots x="<<d<<endl;
}else{
cout<<"No real root"<<endl;
}
}
return 0;
}
別亂答
程式語言要是有這麼簡單的bug 那麼真的世界上一堆系統bug修不掉了
我剛才也遇到 雖然強迫用 假如是重根的時候答案是-4那強迫輸出-1 但這是作弊
實際上的解決方法是分析錯誤
所以先用小技巧讓軟體輸出測試點五的A B C輸入內容
得知輸入內容是 2 4 2
手算後發現 (-4 + 0 ) / 2*2 一般人認為*法優先序大於/ 實際上是同優先權 所以它實際會變成 -4 先/2 在*2 所以答案是 -4
解決方式是 底下 2*a 那邊要括號起來 讓他先做乘法運算 在除法運算 -4 / 2*2 => -4/4 => -1
Finished.
#include
#include
using namespace std;
int main(){
int a,b,c,d,e;
while(cin>>a>>b>>c){
d=(-b+sqrt(b*b-4*a*c))/2*a;
e=(-b-sqrt(b*b-4*a*c))/2*a;
if((b*b-4*a*c)>0){
cout<<"Two different roots x1="<<d<<" , x2="<<e<<endl;
}else if((b*b-4*a*c)==0){
cout<<"Two same roots x="<<d<<endl;
}else{
cout<<"No real root"<<endl;
}
}
return 0;
}
別亂答
程式語言要是有這麼簡單的bug 那麼真的世界上一堆系統bug修不掉了
我剛才也遇到 雖然強迫用 假如是重根的時候答案是-4那強迫輸出-1 但這是作弊
實際上的解決方法是分析錯誤
所以先用小技巧讓軟體輸出測試點五的A B C輸入內容
得知輸入內容是 2 4 2
手算後發現 (-4 + 0 ) / 2*2 一般人認為*法優先序大於/ 實際上是同優先權 所以它實際會變成 -4 先/2 在*2 所以答案是 -4
解決方式是 底下 2*a 那邊要括號起來 讓他先做乘法運算 在除法運算 -4 / 2*2 => -4/4 => -1
Finished.
感謝
#include
#include
using namespace std;
int main(){
int a,b,c,d,e;
while(cin>>a>>b>>c){
d=(-b+sqrt(b*b-4*a*c))/2*a;
e=(-b-sqrt(b*b-4*a*c))/2*a;
if((b*b-4*a*c)>0){
cout<<"Two different roots x1="<<d<<" , x2="<<e<<endl;
}else if((b*b-4*a*c)==0){
cout<<"Two same roots x="<<d<<endl;
}else{
cout<<"No real root"<<endl;
}
}
return 0;
}
別亂答
程式語言要是有這麼簡單的bug 那麼真的世界上一堆系統bug修不掉了
我剛才也遇到 雖然強迫用 假如是重根的時候答案是-4那強迫輸出-1 但這是作弊
實際上的解決方法是分析錯誤
所以先用小技巧讓軟體輸出測試點五的A B C輸入內容
得知輸入內容是 2 4 2
手算後發現 (-4 + 0 ) / 2*2 一般人認為*法優先序大於/ 實際上是同優先權 所以它實際會變成 -4 先/2 在*2 所以答案是 -4
解決方式是 底下 2*a 那邊要括號起來 讓他先做乘法運算 在除法運算 -4 / 2*2 => -4/4 => -1
Finished.
感謝
大推
我也遇到一樣的問題解不開,結果只是簡單的數學邏輯
太感謝啦