祝大家圣诞节快乐
卑微菜鸡深夜写博客~~~55555
其实这题真的有毒这题你要是C/C++,虽然语法不是辣么直接,但几行而已:
#include
using namespace std;
int main(){
long double x;
scanf("%15Lf",&x);//注意这里特殊写法
printf("%.8Lf",x/23.0);//写成23也可以
return 0;
}
题意说明
P2394题目链接
这题简直有病,因为Java显然没有C/C++/Python那么方便的输入输出体系,而且Java的内存开销很大、运行时间很慢……极其不友好~~
但我偏要用Java来AC掉这个破题!!!
其实就是除以23即可,问题是这个数据怎么读。
这个数用int啥的承载不了的,如果我们用BigInteger其实相当于就是用String读的,没意思。用String会爆炸~~
EOF是换行符\n吗?其实不一定,但这题表述很差劲,令人费解,所以引来不少误会…… (Java给程序员呈现的莫得EOF,所以想通过’\0’啥的来judge的肯定不行~~)
另外,运算的时候应该用BigDecimal保险一下~~
问题反思其实解题过程中虽然出过WA、TLE、RE,但是我这次最核心的错误是RE,这个RE源于本题题意讲解的lj,出自我认为终止为\n,实际上可以基本任意……
第一次提交——TLE+REimport java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
BigDecimal number = new BigDecimal(scanner.nextLine());
scanner.close();
number = number.divide(new BigDecimal("23"));
double result = number.doubleValue();
System.out.printf("%.8f", result);
}
}
自测:
心态挺崩的吧,但是还是继续吧……
第二次提交——第N次提交基本情况如下图:
本来想利用read()来做,结果根本执行不下去~~
import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader jin = new BufferedReader(new InputStreamReader(System.in));
int counter = 0, i = 0;
List list = new ArrayList(16);
char temp = (char)System.in.read();
while(temp != '\n' && counter
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?