#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
int main()
{
double a,b,res;
while(cin>>a>>b)
{
res = a/b;
if((res*b) == a)
cout<<"Terminates"<<endl;
else
cout<<"Does not terminate"<<endl;
}
return 0;
}
所以,這裏是我的代碼,看看如果a/b導致終止小數或不。一些輸入產生正確的輸出,如:終止十進制
1/3:不終止,
1/9:不終止,
1/7:不終止,
22/7:不終止,
1/2:終止。
除1/5應顯示:1/5 : Terminates
,但輸出爲:Does not terminates
。
我知道C++浮點存在很多問題,試圖谷歌,但它就像一個謎題。
在二進制算術中,1/5是非終止分數。 –
你能解釋更多請@PatriciaShanahan – inhaler
好的,我有種得到它@PatriciaShanahan – inhaler