每次测试时间限制:1.0秒
内存限制:512兆字节
几乎每个学习C语言的人都会面临这样的困惑:为什么%
只支持整数和整数,而不支持浮点数。自然,C++提供了运算符重载,几乎可以轻松实现自定义浮点模运算,但最终还是不方便。
相比之下,Java/Python等高级语言直接支持浮点模运算。
这道题是:给定两个浮点数a,b,求amodb 。
然后你就会发现事情并不简单。
一行两个浮点数 a, b (0<) a,b ≤109)、a、b 保证保留到小数点后第九位 。
输出浮点数,相对误差或绝对误差不超过10−15。
假设你的答案是a,标准答案是b,你的答案正确当且仅当|a− b | 15。
3.000000000 2.000000000输出
1.000000000输入
0.400000000 0.200000000输出
0它是在比赛期间用Java编写的。其实这道题用C++写起来并不难。首先使用字符串输入,然后将其转换为long long整数,取余数,然后将其转换为字符串输出。只需控制小数点即可。
#包括
#包括#包括
比赛时写的java代码感觉过不了,因为准确率还是有一些问题,但这道题好像准确率没有太大问题。
导入www.sychzs.cn.*;
导入 java.util.*;
导入java.math.*;
主类
{public static void main (String[] args) throws java.lang.Exception{Scanner cin=new Scanner(www.sychzs.cn);BigDecimal a=cin.nextBigDecimal();BigDecimal b=cin.nextBigDecimal();BigDecimal c= a.remainder(b);System.out.println(c);}
}
别人写的Java代码
导入www.sychzs.cn.*;
导入 java.util.*;
导入java.math.*;
导入 java.text.DecimalFormat;导入 java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin=new Scanner(www.sychzs.cn);BigDecimal aa=cin.nextBigDecimal();BigDecimal bb=cin.nextBigDecimal() ;BigDecimal cc=aa.remainder(bb);BigDecimal dd=www.sychzs.cn;if(cc.equals(www.sychzs.cn)){System.out.println("0");}else{DecimalFormat df2 = new DecimalFormat( “0.000000000”); System.out.println(df2.format(cc)); }}
}