加油,又是美好的一天
字符统计
将字母数量转化为数组对应的下标
Scanner sc = new Scanner(System.in);
String str =sc.next().toUpperCase();
char c [] = str.toCharArray();//转化为字符数组
int [] arr = new int [26];//开26个大小存储相应的字母数量s
for(int i=0;i<c.length;i++) {
arr[c[i] - 'A']++;// 66 - 65 arr[1]++; (表示有一个B)
}
int max = 0;
for(int i=0;i<arr.length;i++) {
if(arr[i] > max) {
max = arr[i];
}
}
for(int i=0;i<arr.length;i++) {
if(arr[i] == max) {
System.out.println((char)( i +'A'));// 3 + '65' ==68 含有一个C
}
卡片
package daka;
import java.util.Arrays;
import java.util.Scanner;
/*
* 卡片
*
*/
public class testss {
public static void main(String[] args) {
int arr[] = new int [10];
for(int i=0;i<arr.length;i++) {
arr[i] =2021;
}
int result = 0;
for(result = 1;result<99999;result++) {
String str = result+"";
String [] split = str.split("");
for(int i=0;i<split.length;i++) {
int j = Integer.parseInt(split[i]);
if(arr[j] > 0) {
arr[j]--;
}
else {
System.out.println(result-1);
return;
}
}
}
}
}
路径
package lq;
import java.util.*;
public class lujin {
public static int gcd(int a, int b) {//计算最大公因数
if (a % b != 0) return gcd(b, a % b);//a不整除b;或者a<b时使得a,b交换
return b;//a整除b
}
/*public static int lcm(int a, int b) {//求最大公倍数
return a * b / gcd(a, b);
}*/
public static void main(String[] args) {
int[] f = new int[2022];
for(int i = 1;i <= 2021;i++) {//从结点1开始
for(int j = i+1;j <= i+21;j++) {//讨论能与结点1构成无向边的结点
if(j > 2021)
break;
if(f[j] == 0)
f[j] = f[i]+(j*i/gcd(i,j));//(j*i/gcd(i,j))这一部分才是用来求最大公因数的,eg:(2*4/gcd(4,2)),gcd(4,2)返回2
else //随着i++,f[j]≠0就要判断当前存储路径和之前的存储路径哪个才是最短路径
f[j] = Math.min(f[j],f[i]+j*i/gcd(i,j));
}
}
System.out.println(f[2021]);
}
}
4.

被折叠的 条评论
为什么被折叠?



