1.国际博物馆日
问题描述
5月18日,是国际博物馆日,这是一个弘扬博物馆文化的重要日子。
博物馆不仅是知识的殿堂,更是人们心灵的驿站。通过了解博物馆,我们可以更好地认识自己的文化根源,拓宽视野,丰富知识,提升修养。博物馆藏品丰富多样,涵盖了艺术、历史、科学等各个领域,让人们可以近距离感受到历史的厚重、艺术的魅力和科学的奥秘。
现在,请你输出 museum 来表达对国际博物馆日的祝福和推广博物馆文化的期望!
签到题,直接输出
public class Main {
public static void main(String[] args) {
System.out.println("museum");
}
}
2.最小值取余
问题描述
给定n个整数a1,a2,…,an和一个变量x,初始时x=0。你需要执行 1 次以下操作:
首先,选择一个长度为n的排列p1,p2,…,pn。
然后,按照顺序对i=1,2,…,n,将x替换为10*x+api。
请问,最终可以得到的x 的最小值对998244353取模后的余数是多少?
输入格式
第一行包含一个整数n(1<=n<=10^5),表示整数的数量。
第二行包含n个空格分隔的整数a1,a2,…,an(1<=ai<=10^9)。
输出格式
输出一个整数,最终可以得到x的最小值对998244353取模后的余数。
样例输入
3
1 2 3
样例输出
123
按照题目意思即可
import java.util.*;
public class Main {
static int mod = 998244353;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
long[] a = new long[n];
for (int i = 0; i < n; i++) a[i] = scan.nextLong();
long x = 0;
Arrays.sort(a);
for (int i = 0; i < n; i++) x = (10 * x + a[i]) % mod;
System.out.println(x);
}
}
3.小蓝方程
问题描述
小蓝是一位著名的数学家,他最近提出了一个有趣的数学方程:a=n*a
方程伴随两个整数X,Y 和两个条件:0<=a<=X。0<=n<=Y。
现在,你的任务是计算在给定的X和Y 值的情况下有多少对(a,n) 满足上述方程和限制条件。
输入格式
第一行包含两个整数X和Y(1<=X,Y<=10^9)。
输出格式
输出一个整数,表示满足条件的(a,n) 的对数。
样例输入
1 1
样例输出
3
a = 0时,一共有0-Y种情况,当Y >= 1时,a可以从1到X取任意值,而此时n的取值范围仍为0到Y。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int x = scan.nextInt();
int y = scan.nextInt();
int ans = y + 1;
if (y >= 1) ans += x;
System.out.println(ans);
}
}
第4题当时没解出来
5.数学魔法家
问题描述
小蓝被称之为数字王国的数学魔术家,他总是能将一个数字变换出不同的样子。
现在小蓝遇见了一个考验,给定一个整数x,小蓝可以从x中任意选择两个数字并调换它们的位置,请问在保证变换后x合法的情况下x可以变成的最大值和最小值分别是多少?
比如数字130,可以变为310,但不能变为013,因为0 开头的数字不合法。
操作可以进行无限次。
输入格式
输入一行一个整数x(1<=x<=10^100000 )。
保证x 是个合法的整数。
输出格式
输出一行两个整数分别表示x可以变成的最大值和最小值。
输入样例
1423
输出样例
4321 1234
看到数据范围果断选择字符串
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.next();
char[] c = str.toCharArray();
Arrays.sort(c);
int index = 0;
for (int i = 0; i < c.length; i++) {
if (c[i] != '0') {
index = i;
break;
}
}
String str1 = "", str2 = "";
for (int i = c.length-1; i >= 0; i--) str2 += c[i];
if (index != 0) {
c[index] ^= c[0];
c[0] ^= c[index];
c[index] ^= c[0];
}
for (int i = 0; i < c.length; i++) str1 += c[i];
System.out.println(str2 + " " + str1);
}
}