1029:计算浮点数相除的余
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 45286 通过数: 18793
【题目描述】
计算两个双精度浮点数aa和bb的相除的余数,aa和bb都是双精度浮点数。这里余数(r)(r)的定义是:a=k×b+ra=k×b+r,其中kk是整数,0≤r<b0≤r<b。
【输入】
输入仅一行,包括两个双精度浮点数aa和bb。
【输出】
输出也仅一行,a÷ba÷b的余数。
【输入样例】
73.263 0.9973
【输出样例】
0.4601
【分析】
本题原理较为简单,就是余数的基本概念,难点是容易忽略被除数为负数的情况
解决办法:1、找商时采用向下取整(调用系统函数floor)
2、最后处理负数。若找出余数为负数,再加一个除数就好
代码展示:
#include<iostream>
#include<cmath>
using namespace std;
int main(){
double a,b,r;
cin>>a>>b;
r=a-floor(a/b)*b;
cout<<r<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main(){
double a,b,r;
cin>>a>>b;
r=a-int(a/b)*b;
if(r<0)r+=b;
cout<<r<<endl;
return 0;
}