【題目描述】
計算兩個雙精度浮點數a和b的相除的余數,a和b都是雙精度浮點數。這里余數(r)的定義是:a=k×b+r,其中k是整數,0≤r<b。
【輸入】
輸入僅一行,包括兩個雙精度浮點數a和b。
【輸出】
輸出也僅一行,a÷b的余數。
【輸入樣例】
73.263 0.9973
【輸出樣例】
0.4601
題目分析:
本題考察余數的定義,有的同學會直接使用取余運算符與計算余數,結果會報錯,原有是取余運算符%只適用與整型之間,本題是浮點數。
所以會報錯,這里我們要先搞清楚,什么是余數,余數本質上是除法過程中沒有被除盡的部分,剩余的部分,那怎么再不使用取余運算符
的情況下去計算余數呢,這里我們舉個例子:
求10除以3的余數,我們都知道結果為1,怎么來的呢,是因為10除以3的商為3,並且在一個除法算式里,被除數、余數、除數和商的關系為:(被除數-余數)÷除數=商,記作:被除數÷除數=商··· ···余數
這里我們要求余數,只需要把商求出來就行了,帶入公式,余數 = 被除數÷除數-商。
#include<iostream>
using namespace std;
int main(){
double a,b,r,k;
cin>>a>>b;
k=int(a/b);
r = a - k*b;
cout<<r;
return 0;
}