试题 A: 平方和
本题总分:5 分
【问题描述】
小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。注意,平方和是指将每个数分别平方后求和。
请问,在 1 到 2019 中,所有这样的数的平方和是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
提示:如果你编写程序计算,发现结果是负的,请仔细检查自己的程序, 不要怀疑考场的编程软件。
真的是一到场上就蒙圈,感觉特别简单 就是脑子一片浆糊哭
public class Main1 {
static boolean isIn(int num) {
String temp = "" + num;
char[] arr = temp.toCharArray();
for(int i = 0; i < temp.length(); i++)
if(arr[i] == '0' || arr[i] == '1' || arr[i] == '2' || arr[i] == '9') return true;
return false;
}
public static void main(String[] args) {
long ans = 0;
for(int i = 1; i <= 2019; i++) if(isIn(i)) ans += i*i;
System.out.println(ans);
}
}
试题 B: 数列求值
本题总分:5 分
【问题描述】
给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求
第 20190324 项的最后 4 位数字。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写多余的内容将无法得分。
更是凉凉,第一次参加这种比赛,这里花好久还是想出来了用模运算,结果不知道是把20190324输入错了还是哪出问题了,好像算成了6943,而且自己还把输出放在了循环里头真是服了自己,运行好久才出的结果。
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int n = scanner.nextInt();
long a=1,b=1,c=1,d=0;
for (int i = 4; i <= n; i++) {
d=(a+b+c)%10000;
a=b;
b=c;
c=d;
}
System.out.println(d);
}
}
}
试题 H: 修改数组
时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分
【问题描述】
给定一个长度为 N 的数组 A = [A1, A2, · · · AN],数组中有可能有重复出现的整数。
现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改
A2, A3, · · · , AN。
当修改 Ai 时,小明会检查 Ai 是否在 A1 ∼ Ai−1 中出现过。如果出现过,则小明会给 Ai 加上 1 ;如果新的 Ai 仍在之前出现过,小明会持续给 Ai 加 1 ,直到 Ai 没有在 A1 ∼ Ai−1 中出现过。
当 AN 也经过上述修改之后,显然 A 数组中就没有重复的整数了。现在给定初始的 A 数组,请你计算出最终的 A 数组。
【输入格式】
第一行包含一个整数 N。
第二行包含 N 个整数 A1, A2, · · · , AN 。
【输出格式】
输出 N 个整数,依次是最终的 A1, A2, · · · , AN。
【样例输入】
5
2 1 1 3 4
【样例输出】
2 1 3 4 5
【评测用例规模与约定】
对于 80% 的评测用例,1 ≤ N ≤ 10000。
对于所有评测用例,1 ≤ N ≤ 100000,1 ≤ Ai ≤ 1000000。
试题 I: 糖果#
时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分
此题还没搞懂哪里不对o(╥﹏╥)o
import java.util.ArrayList;
import java.util.Scanner;
public class Main3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int n = scanner.nextInt();
int [] nums=new int[n];
ArrayList list=new ArrayList();
for (int i = 0; i < n; i++) {
nums[i]=scanner.nextInt();
}
for (int k=0; k<n; k++){
if (!list.contains(nums[k])){
list.add(nums[k]);
}
else {
list.add(nums[k]+1);
}
}
System.out.println(list);
}
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class Main3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int n = scanner.nextInt();
int [] nums=new int[n];
ArrayList list=new ArrayList();
for (int i = 0; i < n; i++) {
nums[i]=scanner.nextInt();
}
for (int k=0; k<n; k++){
while(list.contains(nums[k])){
nums[k]++;
}
list.add(nums[k]);
}
/* for (int k=0; k<n; k++){
if (!list.contains(nums[k])){
list.add(nums[k]);
}
else {
list.add(nums[k]+1);
}
}*/
System.out.println(list);
}
}
}