信息学奥赛一本通T-1029

文章提供了两个C++程序示例,用于计算两个双精度浮点数相除后的余数,遵循r=a-i*b的定义,其中0≤r 摘要由CSDN通过智能技术生成

【题目描述】
计算两个双精度浮点数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

再次转载请注明出处!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值