測試的時候是AC
但送出答案是WA line7
請各位大神相助!
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int i, t, a, b, c, d, e;
while(cin>>t)
{
for ( i = 0 ; i < t ; i++ )
{
cin>>a>>b>>c>>d;
if ((d/c) == (c/b))
{
e = pow(d,2)/c;
cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl;
}
else if ((d-c) == (c-b))
{
e = 2*d-c;
cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl;
}
}
}
return 0;
}
你可以考慮以下測資: (對照你的程式依序為 a b c d )
3 6 9 12
由於C++中 int 的 /運算子 進行的是 整數除法 ,
所以在 d/c 和 c/b 的結果會變成 12/9 和 9/6 最後計算結果會是 1 和 1 ,
所以你的程式會認為 3 6 9 12 是一個等比數列而計算出 16 ,
實際上答案應為 15 才對~
(另外事實上在範測的 1 2 3 4 也有相同問題, 只是剛好最後計算的答案正確而已~ )
以上希望有幫助到你~ OwO
你可以考慮以下測資: (對照你的程式依序為 a b c d )
3 6 9 12
由於C++中 int 的 /運算子 進行的是 整數除法 ,
所以在 d/c 和 c/b 的結果會變成 12/9 和 9/6 最後計算結果會是 1 和 1 ,
所以你的程式會認為 3 6 9 12 是一個等比數列而計算出 16 ,
實際上答案應為 15 才對~
(另外事實上在範測的 1 2 3 4 也有相同問題, 只是剛好最後計算的答案正確而已~ )
以上希望有幫助到你~ OwO
喔喔了解了 謝謝你的幫忙!(*‘ v`*)