第一题
/**
* 质数
* 【问题描述】
* 我们知道第一个质数是 2、第二个质数是 3、第三个质数是 5……请你计算
* 第 2019 个质数是多少?
* 【答案提交】
* 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
* 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
*/
public class practice1 {
public static void main(String[] args) {
int count = 0;
for (int i = 2; true; i++) {
if (isPrime(i)){
count++;
}
if (count == 2019){
System.out.println(i);
break;
}
}
}
public static boolean isPrime(int i){
int p = (int)Math.sqrt(i) + 1;
for (int j = 2; j < p; j++) {
if (i % j == 0)return false;
}
return true;
}
}
第二题
import java.util.Scanner;
/**
* 小明非常不喜欢数字 2,包括那些数位上包含数字 2 的数。如果一个数的数位不包含数字 2,小明将它称为洁净数。
* 请问在整数 1 至 n 中,洁净数有多少个?
* 【输入格式】
* 输入的第一行包含一个整数 n。
* 【输出格式】
* 输出一行包含一个整数,表示答案。
* 【样例输入】
* 30
* 【样例输出】
* 18
* 【评测用例规模与约定】
* 对于 40% 的评测用例,1 <= n <= 10000。
* 对于 80% 的评测用例,1 <= n <= 100000。
* 对于所有评测用例,1 <= n <= 1000000。
*/
public class practice2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
if (n > 1000000){
System.out.println("数字过大!");
System.exit(0);
}
int count = 0;
while (n > 0){
if (!String.valueOf(n).contains("2"))count++;
n--;
}
System.out.println(count);
}
}
第三题
import java.util.HashSet;
import java.util.Set;
/**
* 凑算式
*
* B DEF
* A + --- + ------- = 10
* C GHI
*
* (如果显示有问题,可以参见【图1.jpg】)
*
*
* 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
*
* 比如:
* 6+8/3+952/714 就是一种解法,
* 5+3/1+972/486 是另一种解法。
*
* 这个算式一共有多少种解法?
*
* 注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
*/
public class practice3 {
public static void main(String[] args) {
int count = 0;
Set<Character> set = new HashSet<>();
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 10; j++) {
for (int k = 1; k < 10; k++) {
for (int l = 1; l < 10; l++) {
for (int m = 1; m < 10; m++) {
for (int n = 1; n < 10; n++) {
for (int o = 1; o < 10; o++) {
for (int p = 1; p < 10; p++) {
for (int q = 1; q < 10; q++) {
set.clear();
char[] str = (""+i+j+k+l+m+n+o+p+q).toCharArray();
for(char s : str){
set.add(s);
}
if (set.size() < 9)continue;
int bc1 = Integer.parseInt(""+l+m+n);
int bc2 = Integer.parseInt(""+o+p+q);
if (i + (double)j / k + (double)bc1 / bc2 == 10){
count++;
}
}
}
}
}
}
}
}
}
}
System.out.println(count);
}
}