蓝桥杯第十一届JavaA组代码

蓝桥杯第十一届JavaA组代码

A.门牌制作(5分)
在这里插入图片描述

代码:

public class thirtyeight {
	public static void main(String[] args) {
		int p;int t=0;
		for(int i=1;i<=2020;i++) {
			p=i;
			while(p!=0) {
				if(p%10==2) {
					t++;
				}
				p=p/10;
			}
		}
		System.out.println(t);
	}
}

结果:
624

B.既约分数(5分)
在这里插入图片描述
代码:

public class thirtynine {
	public static void main(String[] args) {
		int p,k;int t=0;int r;
		for(int i=1;i<=2020;i++) {
			for(int j=1;j<=2020;j++) {
				p=i;k=j;
				while(p%k!=0) {
					r=k;
					k=p%k;
					p=r;
				}
				if(k==1) {
					t++;
				}
			}
		}
		System.out.println(t);
	}
}

结果:2481215

C.蛇形填数(10分)
在这里插入图片描述
在这里插入图片描述
代码:

public class forty {
	public static void main(String[] args) {
		int[][] a=new int[51][51];
		int k=1;
		for(int i=1;i<=50;i++) {
			for(int j=1;j<=i;j++) {
				a[j][i-j+1]=k;
				k++;
			}
		}
		System.out.println(a[20][20]);
	}
}

结果:761

D.七段码(10分)
在这里插入图片描述
这题不会

E.平面分割(15分)
在这里插入图片描述
这题不会

F.成绩分析(15分)
在这里插入图片描述
【样例输入】
7
80
92
56
74
88
99
10

【样例输出】
99
10
71.29

代码:

import java.util.Scanner;
import java.util.Arrays;
public class fortyone {
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		int n=reader.nextInt();//人数
		int[] a=new int[n];double sum=0;
		for(int i=0;i<n;i++) {
			a[i]=reader.nextInt();
			sum+=a[i];
		}
		Arrays.sort(a);
		System.out.println(a[n-1]);
		System.out.println(a[0]);
		System.out.printf("%.2f",sum/n);
		
	}
}
/*
7
80
92
56
74
88
99
10

 */

15分

G: 回文日期(20分)
在这里插入图片描述
【样例输入】
20200202
【样例输出】
20211202
21211212

代码:

import java.util.Scanner;
public class fortytwo {
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		int n=reader.nextInt();
		int[] a=new int[8];int p;int day=0,month=0,year=0;
		for(int i=n+1;i<=99991231;i++) {
			p=i;
			for(int j=7;j>=0;j--) {
				a[j]=p%10;
				p=p/10;
			}
			year=a[0]*1000+a[1]*100+a[2]*10+a[3];
			month=a[4]*10+a[5];
			if(month>12) {
				continue;
			}
			day=10*a[6]+a[7];
			if(day>31) {
				continue;
			}
			//回文:
			if(a[7]==a[0]&&a[6]==a[1]&&a[5]==a[2]&&a[4]==a[3]) {
				//闰年
				if(year%400==0||(year%4==0&&year%100!=0)) {
					if(month==2&&day<=29) {
						System.out.println(i);
						break;
					}
					if((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day<=31) {
						System.out.println(i);
						break;
					}
					if((month==4||month==6||month==9||month==10)&&day<=30) {
						System.out.println(i);
						break;
					}
				}
				//平年
				else {
					if(month==2&&day<=28) {
						System.out.println(i);
						break;
					}
					if((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day<=31) {
						System.out.println(i);
						break;
					}
					if((month==4||month==6||month==9||month==10)&&day<=30) {
						System.out.println(i);
						break;
					}
				}
			}
		}
		for(int i=n+1;i<=99991231;i++) {
			p=i;
			for(int j=7;j>=0;j--) {
				a[j]=p%10;
				p=p/10;
			}
			year=a[0]*1000+a[1]*100+a[2]*10+a[3];
			month=a[4]*10+a[5];
			if(month>12) {
				continue;
			}
			day=10*a[6]+a[7];
			if(day>31) {
				continue;
			}
			//ABABBABA:
			if(a[0]==a[2]&&a[5]==a[7]&&a[2]==a[5]&&a[1]==a[3]&&a[4]==a[6]&&a[3]==a[4]) {
				//闰年
				if(year%400==0||(year%4==0&&year%100!=0)) {
					if(month==2&&day<=29) {
						System.out.println(i);
						break;
					}
					if((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day<=31) {
						System.out.println(i);
						break;
					}
					if((month==4||month==6||month==9||month==10)&&day<=30) {
						System.out.println(i);
						break;
					}
				}
				//平年
				else {
					if(month==2&&day<=28) {
						System.out.println(i);
						break;
					}
					if((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day<=31) {
						System.out.println(i);
						break;
					}
					if((month==4||month==6||month==9||month==10)&&day<=30) {
						System.out.println(i);
						break;
					}
				}
			}
		}
	}
}

感觉可以改进很多,不过暂时这样吧
20分

H: 子串分值(20分)
在这里插入图片描述
【样例输入】
ababc
【样例输出】
21
【样例说明】
子串 f值 a 1
ab 2
aba 1
abab 0
ababc 1
b 1
ba 2
bab 1
babc 2
a 1
ab 2
abc 3
b 1
bc 2
c 1

代码:

import java.util.Scanner;
public class fortythree {
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		String s=reader.next();
		int t=0;
		int q=s.length();int n=0;
		while(q!=0) {
			n+=q;
			q=q-1;
		}
		String[] p=new String[n];
		int m=0;int f=0;
		for(int i=0;i<n;i++) {
			//提出子串
			if(f<n) {
				for(int j=i+1;j<=s.length();j++) {
					p[f]=s.substring(i,j);
					//System.out.println("i="+f+"p[i]="+p[f]);
					f++;
				}
			}
			else {
				break;
			}
		}
		//子串中每个字符检索
		int[] a=new int[27];
		for(int i=0;i<n;i++) {
			m=0;
			for(int h=0;h<27;h++) {
				a[h]=0;
			}
			for(int k=0;k<p[i].length();k++) {
				a[(p[i].charAt(k)-97)]++;
			}
			//26个字母的数量分别查
			for(int k=0;k<27;k++) {
				if(a[k]==1) {
					m++;
				}
			}
			//System.out.println("m="+m);
			t+=m;
	    }
		System.out.println(t);
    }
}

8分

I: 荒岛探测(25分)
在这里插入图片描述
【样例输入】
10 6 4 12 12
0 2 13 2 13 15
【样例输出】
39.99
在这里插入图片描述
这题还没做到

J.字串排序(25分)
在这里插入图片描述
【样例输入】
4
【样例输出】
bbaa

【样例输入】
100
【样例输出】
jihgfeeddccbbaa

这题还没做到

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值