Q1:奇数倍数
题目:
![](https://i-blog.csdnimg.cn/blog_migrate/a1685be0244a480f01f0b6008ac044ca.png)
思路:
直接暴力枚举即可,2019的1倍,2倍,3倍数.......然后判断他的倍数是否每个数字都为奇数即可
代码:
public class Question1 {
public static void main(String[] args) {
for (int i = 1; ; i++) {
if(isJ(2019 * i)){
System.out.println(2019 * i); //139311
break;
}
}
}
public static boolean isJ(int n) {
while (n > 0) {
int a = n % 10;
if(a % 2 == 0) return false;
n /= 10;
}
return true;
}
}
Q2:求值
题目:
![](https://i-blog.csdnimg.cn/blog_migrate/119ec3372b427b68b593a45db09993f7.png)
思路:
枚举,从1开始计算每一个数他有多少个约数,如果这个数的约数个数是100,那就停止计算,输出这个数
代码:
public class Question2 {
public static void main(String[] args) {
for (int i = 1; ; i++) {
int sum = 0;
for (int j = 1; j <= i; j++) {
if(i % j ==0) sum++;
}
if(sum ==100) {
System.out.println(i); //45360
break;
}
}
}
}
public class Question2 {
public static void main(String[] args) {
for (int i = 1; ; i++) {
int sum = 0;
for (int j = 1; j <= i; j++) {
if(i % j ==0) sum++;
}
if(sum ==100) {
System.out.println(i); //45360
break;
}
}
}
}
Q3:求和
题目:
![](https://i-blog.csdnimg.cn/blog_migrate/c2f2169d32e7a66f8144269b2f64927d.png)
思路:
这里可以提取公因式简便计算.先把数组里面所有的值都给加起来.之后依次减掉最前面哪个数的值×减掉的值,全部相加即可
代码:
import java.util.Scanner;
public class Question3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//给数组赋值,并且把数组里面的值给相加
int[] nums = new int[n];
long sum = 0;
for (int i = 0; i < nums.length; i++) {
nums[i] = sc.nextInt();
sum += nums[i];
}
//累加
long res = 0;
for (int i = 0; i < nums.length - 1; i++) {
sum -= nums[i];
res += nums[i] * sum;
}
System.out.println(res);
}
}
Q4:数位排序
题目:
![](https://i-blog.csdnimg.cn/blog_migrate/66e43564c2ad98b9891a3f34c7ab15d1.png)
思路:
使用Arrays.sort(),自己制定排序规则,进行排序
代码:
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Question4max {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
Integer[] nums = new Integer[n];
setArr(nums);
//对数组进行排序
Arrays.sort(nums, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if(sum(o1) > sum(o2)) return 1;
if(sum(o1) < sum(o2)) return -1;
return o1 - o2;
}
});
System.out.println(nums[m - 1]);
}
//各个位数上的数字相加
public static int sum(int n) {
int ans = 0;
while (n > 0) {
ans += n % 10;
n /= 10;
}
return ans;
}
//给数组赋值
public static void setArr(Integer[] nums) {
for (int i = 0; i < nums.length; i++) {
nums[i] = i + 1;
}
}
}