为了去打蓝桥杯,我没有按照书上的去做(例子太简单),基本上没有什么作用,就是基本的罗列。我也就没有去刷那些基础的题目和积累技巧(类似c语言里面的while((c = getchar) != '\0' ))这样的东西)但是我又必须用到这些东西了所以我就决定上网搜,肯定不止我一个人遇到了这样的问题。于是我就去搜索——果然。
原文链接:https://blog.csdn.net/qq_37701443/article/details/108309490
花了一些时间(两天的课余时间,终于做对了一道题目)这无疑证明了这个方法的有效性。但是在最的过程中我也发现了不小的问题。就是我没有把别人的代码看明白,边听歌边听视频边写代码,导致我一直在错误的地方驻足不前,我以为是什么小问题,于是就去找通义千问,但是它给出的代码有一些API我还没学过,所以不怎么会。我就一直困在那里——具体干了些什么我已经不记得了,总之没有一点收获,让我心烦意乱。我去吃晚饭的时候就一直在想怎么改合适,这时候灵光一闪,我把i的“起始值”和“结束值”控制一下就好了,但是当天晚上我并没有行动。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n;
while((n=sc.nextInt())!=0){
int[] arr=new int[n];
for(int i=0;i<n;i++){
arr[i]=sc.nextInt();
}
//TODO 处理一维数组
}
}
}
这个代码并没有保存输入的数据发,它旨在把每一行的数据提取处理之后再处理新的一行,但是我要的是保存全部的数据以方便我查找
题目背景
某涉密单位下发了某种票据,并要在年终全部收回。
题目描述
每张票据有唯一的 ID 号,全年所有票据的 ID 号是连续的,但 ID 的开始数码是随机选定的。因为工作人员疏忽,在录入 ID 号的时候发生了一处错误,造成了某个 ID 断号,另外一个 ID 重号。
你的任务是通过编程,找出断号的 ID 和重号的 ID。
数据保证断号不可能发生在最大和最小号。
输入格式
一个整数 N(N<100) 表示后面数据行数,接着读入 N 行数据,每行数据长度不等,是用空格分开的若干个(不大于 100100 个)正整数(不大于 105105),每个整数代表一个 ID 号。
输出格式
要求程序首先输入要求程序输出 11 行,含两个整数 m,n,用空格分隔,其中,m 表示断号 ID,n 表示重号 ID。
尽管后来我通过修改代码好了,但是这还是给了我很大的提醒——做事情要问问自己究竟懂了没有,不要看了一遍觉得自己明白了就不加甄别的接受了。还有——不要边听歌、玩手机边做编程题。
最新进展
我的判断是正确的,学校没有教这些技巧。相反的是,它直接跳过了。