描述
计算两个双精度浮点数a和b的相除的余数,a和b都是正数的。这里余数(r)的定义是:a = k * b + r,其中 k是整数, 0 <= r < b。
输入
输入仅一行,包括两个双精度浮点数a和b。
输出
输出也仅一行,a÷b的余数
样例输入
73.263 0.9973
样例输出
0.4601
提示
注意:输出时小数尾部没有多余的0,可以用下面这种格式:
double x;
x = 1.33;
printf("%g", x);
代码:
(c++)
#include<iostream>
using namespace std;
#include<iomanip>
/*描述
计算两个双精度浮点数a和b的相除的余数,a和b都是正数的。这里余数(r)的定义是:a = k * b + r,其中 k是整数, 0 <= r < b。
输入
输入仅一行,包括两个双精度浮点数a和b。
输出
输出也仅一行,a÷b的余数
样例输入
73.263 0.9973
样例输出
0.4601
提示
注意:输出时小数尾部没有多余的0,可以用下面这种格式:
double x;
x = 1.33;
printf("%g", x);
*/
int main(){
int k = 0;//记录a与b之间的倍数关系
double a=0, b = 0,r=0;
cin >> a;//输入被除数
cin >> b;//输入除数
k = a / b;
r = a - k * b;
printf("%g", r);//输出a/b的余数
system("pause");
return 0;
}
(Java)
import java.util.Scanner;
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double a = scanner.nextDouble();
double b = scanner.nextDouble();
BigDecimal a1 = new BigDecimal(Double.toString(a));
BigDecimal b1 = new BigDecimal(Double.toString(b));
BigDecimal c = a1.remainder(b1);
System.out.println(c);
}
}
程序旨在计算两个正的双精度浮点数相除的余数,按照a=k*b+r的定义,其中k是整数,0<r<b。分别提供了C++和Java的实现,通过输入被除数a和除数b,计算并输出余数r,确保结果中不包含多余的0。
4246

被折叠的 条评论
为什么被折叠?



