写十四届的蓝桥杯幸运数字时,正确答案是215040,自己每次写的答案运行出来是215041
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
int k=0;
int i=1;
while(k<2023){
if(i%fun(i,2)==0&&i%fun(i,8)==0&&i%fun(i,10)==0&&i%fun(i,16)==0){
k++;
}
if(k==2023)break;
i++;
}
System.out.println(i);
}
public static int fun(int n,int jinzhi){
int sum=0;
while(n>0){
sum+=n%jinzhi;
n=n/jinzhi;
}
return sum;
}
}
发现while循环里的if(k==2023)break;这句去掉答案就是215041;加上就是215040,不管while里是(k<2023)还是(k!=2023)。对比好多次才发现,妈嘟。
阶乘求和那道题
long sum=0;
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
for(int i=1;i<=n;i++) {
long temp=1;
for(int j=1;j<=i;j++) {
temp=temp*j;
temp=temp % 1000000000l;
}
sum+=temp;
}
System.out.println(sum%1000000000l);
十三届字符统计
1.ASCII码表
大写A-Z 65-90
小写a-z 97-122
数字0-9 48-57
2.toCharArray() 将字符串“ABCD”转换成字符数组'A''B''C''D' Char[] crr = {'A','B','C','D'};
split() split('1')将字符串“AB1CD”分割为字符串数组 String[] srr = {"AB","CD"};
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String S = sc.next();
char c[] = new char[26];
for(int i=0;i<S.length();i++) {
c[(int)S.charAt(i)-65]++;
}
int max = 0;
for(int i=0;i<c.length;i++) {
if(c[i]>max)max = c[i];
}
for(int i=0;i<c.length;i++) {
if(c[i]==max) {
System.out.print((char)(i+65));
}
}
}
}
最开始想用哈希表,一个字母对应一个次数,但是发现好像不会写哈哈哈哈哈哈,找了之前写的笔记比葫芦画瓢也算解出来了
import java.util.Arrays;
import java.util.Map.Entry;
import java.util.*;
public class yichu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String S = sc.next();
char c[] = new char[S.length()];
for(int i=0;i<S.length();i++) {
c[i]=S.charAt(i);
}
Map<Character,Integer>map=new HashMap<>();
for(int i=0;i<S.length();i++) {
map.put(c[i],map.getOrDefault(c[i],0)+1);//key是字母,value是出现次数
}
//遍历map
int max=0;
for(Entry<Character,Integer>entry:map.entrySet()) {
max=Math.max(max, entry.getValue());//得到最大频率
}
List<Character>list=new ArrayList<>();
for(Entry<Character,Integer>entry:map.entrySet()) {
if(max==entry.getValue()) {
list.add(entry.getKey());//存入list
}
}
Collections.sort(list);//排序
for(int x:list) {
System.out.print((char)x);
}
}
}
第十二届纯质数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int ans=0;
for(int i=1;i<=20210605;i++) {
if(judge(i)) {
int j=i;
while(j!=0) {
int temp=j%10;
if(temp!=2&&temp!=3&&temp!=5&&temp!=7) {
break;
}else {
j=j/10;
}
}
if(j==0)ans++;
}
}
System.out.print(ans);
}
public static boolean judge(int n) {
for(int j=2;j*j<=n;j++) {
if(n%j==0) {
return false;
}
}
return true;
}
}
一下就写对怕是悬,还是要找规律,唉