PTA中如何出Java题目?
很多第一次出Java编程题的老师,不知道Java在PTA中是如何处理输入的。写一篇文章供大家参考。
有多种类型输入的编程题:
类型1:固定数量输入
从控制台读入**两个**数,然后将其相加输出。
对于该题可以有如下两种样例输入输出:
样例输入输出1:
输入:
1 2
输出:
3
或者
样例输入输出2:
输入:
1
2
输出:
3
注意:
- 样例输入对应着输入文件中的内容,比如对应着输入文件
0.in,一般来说该文件的最后还要有一个回车,比如1 2后面应有一个回车。 - 样例输出对应着输出文件的内容,比如对应着输出文件
0.out。 - 文件必需使用
UTF-8格式编码,回车换行要使用Linux的回车换行。可以使用Notepad++进行处理。 - 不要出现中文!不管是输入文件、输出文件还是学生提交的代码。
对以上题目有几种解法:
解法1:
Scanner sc = new Scanner(System.in);
int a = sc.nextInt(); //直接将字符串转化为int
int b = sc.nextInt();
System.out.println(a+b);
sc.close();
解法2:
Scanner sc = new Scanner(System.in);
int a = Integer.parseInt(sc.next()); //先将每个单元读出为字符串,然后再将其转化为int型
int b = Integer.parseInt(sc.next());
System.out.println(a+b);
sc.close();
使用next()方法可以自动跳过空格、多个空格、空行、回车换行。推荐使用。
解法3(适用于样例输入输出2,每行只有一个数):
Scanner sc = new Scanner(System.in);
int a = Integer.parseInt(sc.nextLine()); //nextLine处理整行,因此如果需要将整行作为一个处理单元,可以使用nextLine
int b = Integer.parseInt(sc.nextLine());
System.out.println(a+b);
sc.close();
注意:
- 以上所有处理方法都必须先
import java.util.Scanner。 - 代码中尽量不要将
nextLine()与其他如next()、nextInt()等方法混用,否则会出现nextLine()只读取到行尾回车换行符的问题。
类型2:不定数量输入
从控制台读入**若干**整数,然后将其相加输出。
对于该题可以有如下两种样例输入输出:
样例输入输出1:
输入:
1 2 3 4 5 6 7
8 9 10
输出:
55
或者
样例输入输出2:
输入:
1
2
3
4
5
6
7
8
9
10
输出:
55
解法1:可处理上述两种输入
Scanner sc = new Scanner(System.in);
int x = 0;
while(sc.hasNextInt()) { //也可替换为sc.hasNext()
x += sc.nextInt(); //也可替换为Integer.parseInt(sc.next())
}
System.out.println(x);
sc.close();
解法2:可处理样例输入输出2
Scanner sc = new Scanner(System.in);
int x = 0;
while(sc.hasNextLine()) { //也可替换为sc.hasNext()
x += sc.nextIntLine(); //也可替换为Integer.parseInt(sc.next())
}
System.out.println(x);
sc.close();
注意:
- 当使用
hasNextInt()时,在Eclipse中测试的时候,程序不会停止。但是在PTA可正常提交。 - 一般来说
hasNext()与next()、hasNextInt()与nextInt()、hasNextLine()与nextLine()配合使用,其他依次类推。
类型3:输入中可能包含不同类型的数据
如果所处题目样例输入中可能要对出现的数字、字符串、bool类型数据区别对待,并且这些数据出现无规律。
可尝试使用Scanner的next()方法,先将其转换字符串再进行处理。
其他PTA相关文章:
PTA中如何出Java题目?的更多相关文章
- PTA中如何出Java编程题?
很多第一次出Java编程题的老师,不知道Java在PTA中是如何处理输入的.写一篇文章供大家参考. 有多种类型输入的编程题: 类型1:固定数量输入 从控制台读入**两个**数,然后将其相加输出. 对于 ...
- PTA中提交Java程序的一些套路
201708新版改版说明 PTA与2017年8月已升级成新版,域名改为https://pintia.cn/,官方建议使用Firefox与Chrome浏览器. 旧版 PTA 用户首次在新版系统登录时,请 ...
- 原创:从海量数据中查找出前k个最小或最大值的算法(java)
现在有这么一道题目:要求从多个的数据中查找出前K个最小或最大值 分析:有多种方案可以实现.一.最容易想到的是先对数据快速排序,然后输出前k个数字. 二.先定义容量为k的数组,从源数据中取出前k个填 ...
- java中从1000万个随机数中查找出相同的10万个随机数花的最少时间
偶然在群里看到有人问到大数据查询,自己也就想了小艾改如何解决,从从1000万个随机数中查找出相同的10万个随机数花的最少时间, 谈到效率,自然是hashmap莫属. import java.util. ...
- 找出Java进程中大量消耗CPU
原文:https://github.com/oldratlee/useful-shells useful-shells 把平时有用的手动操作做成脚本,这样可以便捷的使用. show-busy-java ...
- Java中过滤出字母、数字和中文的正则表达式
1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2)过滤出数字的正则表达式 [^(0-9)] (3)过滤出中文的正则表达式 [^(\\u4e0 ...
- java算法面试题:从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 ;读取docx 读取doc 使用poi 相关jar包提集提供下载
从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 1,张三,28 2,李四,35 3,张三,28 4,王五,35 5,张三,28 6,李四,35 7,赵六,28 ...
- ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗
1.ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗? :当然是运行期间啊,我自己有个理解误区,改正后如下:编译期间编译器是不去加载类的,只负责编译而 ...
- AJPFX总结关于Java中过滤出字母、数字和中文的正则表达式
1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2) 过滤出 数字 的正则表达式 [^(0-9)] (3) 过滤出 中文 的正则 ...
随机推荐
- spark算子:combineByKey
假设我们有一组个人信息,我们针对人的性别进行分组统计,并进行统计每个分组中的记录数. scala> val people = List(("male", "Mobi ...
- Spark测试代码
测试代码: import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.hive.HiveContext ...
- POJ-1182 食物链---并查集(附模板)
题目链接: https://vjudge.net/problem/POJ-1182 题目大意: 中文题,不多说. 思路: 给每个动物创建3个元素,i-A, i-B, i-C i-x表示i属于种类x,并 ...
- jacascript DOM节点——元素节点、属性节点、文本节点
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! DOM节点的三个种类:元素节点.文本节点.属性节点: 元素节点 元素节点就是 HTML 标签元素,元素节点 ...
- 用js来实现那些数据结构(栈01)
其实说到底,在js中栈更像是一种变种的数组,只是没有数组那么多的方法,也没有数组那么灵活.但是栈和队列这两种数据结构比数组更加的高效和可控.而在js中要想模拟栈,依据的主要形式也是数组. 从这篇文章开 ...
- [LeetCode] Max Chunks To Make Sorted 可排序的最大块数
Given an array arr that is a permutation of [0, 1, ..., arr.length - 1], we split the array into som ...
- Prison 监狱
[题目描述]Caima 王国中有一个奇怪的监狱,这个监狱一共有 P 个牢房,这些牢房一字排开,第 i 个仅挨着第 i+1 个(最后一个除外).现在正好牢房是满的.上级下发了一个释放名单,要求每天释放名 ...
- [HNOI2003]消防局的设立
题目描述 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地.起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状 ...
- [HNOI2011]数学作业
题目描述 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 N 和 M,要求计算 Concatenate (1 .. N) Mod M 的值,其中 Concatenat ...
- UVA - 11992:Fast Matrix Operations
线段树,注意tag优先级 #include<cstdio> #include<cstdlib> #include<algorithm> #include<cs ...