【题目描述】
计算两个双精度浮点数a和b的相除的余数,a和b都是双精度浮点数。这里余数(r)的定义是:a=k*b+r,其中k是整数,0≤r<b。
【输入】
输入仅一行,包括两个双精度浮点数a和b。
【输出】
输出也仅一行,a÷b的余数。
【输入样例】
73.263 0.9973
【输出样例】
0.4601
源程序:
1.0
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
double a,b,r;
cin>>a>>b;
for(int i=0;;i++)
{
r=a-i*b;
if(r>=0&&r<b){
cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(4);
cout<<r<<endl;
break;
}
}
return 0;
}
2.0
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
double a,b,r;
cin>>a>>b;
int i=a/b;
r=a-i*b;
cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(4);
cout<<r<<endl;
return 0;
}
首先使用double,定义三个变量,依据题目可以看出。r的关系式为r=a-i*b;
用一个循环来确保r的取值范围为0<=r<1;
判断条件是否成立,成立后跳出循环;
用setiosflags(ios::fixed)表示以带小数点的形式表示浮点数
setiosflags(ios::right)靠右侧输出
setprecision(n)来控制小数保留n位数输出
创作灵感来源于该博主https://blog.csdn.net/u011815404/article/details/79222039
再次转载请注明出处!!!