W3 school 菜鸟教程 我要自学网 信息学奥赛NOI 花哥的博客 不逼自己一把,怎知自己有多优秀——校长语录

1029:计算浮点数相除的余

1029:计算浮点数相除的余


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 45286     通过数: 18793 

【题目描述】

计算两个双精度浮点数aa和bb的相除的余数,aa和bb都是双精度浮点数。这里余数r(r)的定义是:a=k×b+ra=k×b+r,其中kk是整数,0r<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;
}
最后处理负数情形

 

posted @ 2020-03-24 10:26  耍人  阅读(937)  评论(0编辑  收藏  举报