蓝桥杯练习6

  1. 问题 1446: [蓝桥杯][2013年第四届真题]核桃的数量
    就是求三个数的最小公倍数。最小公倍数 * 最大公约数=a * b
package 蓝桥;

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		int d1=gcd(a,b);
		int d2=gcd(d1,c);
		System.out.println(d2);

	}

	private static int gcd(int a, int b) {
		int X=a*b;
		if(a<b) {
			int r=0;
			r=a;a=b;b=r;
		}
		while(true) {
			int r=a%b;
			if(r==0) {
				return X/b;
			}
			else {
				a=b;
				b=r;
			}
		}
	}
}

  1. 问题 1454: [蓝桥杯][历届试题]蚂蚁感冒
    我第一时间想的是开一个100的数组进行模拟,但好像太复杂了,这个思路应该是正解
package 蓝桥;

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n=sc.nextInt();
		int a=sc.nextInt();//病原体蚂蚁
		int sum=1,maybe=0;//最终感冒的蚂蚁数,感冒预备役
		boolean x=false;
		for(int i=0;i<n-1;i++) {
			int b=sc.nextInt();
			if(a>0) {//病原体向右
				//那么病原体右边所有向左的都会被传染,左边向右的就是预备役,最后要加上;如果右边没有向左的的就不加,
				if(Math.abs(b)>a&&b<0) {//
					x=true;
					sum++;
				}
				if(Math.abs(b)<a&&b>0) {
					maybe++;
				}
			}
			if(a<0) {//病原体向左
				//那么病原体左边所以向右的都会被传染,右边向左的就是预备,最后要加上;如果左边没有向右的的就不加,
				if(Math.abs(b)<Math.abs(a)&&b>0) {
					x=true;
					sum++;
				}
				if(Math.abs(b)>Math.abs(a)&&b<0) {
					maybe++;
				}
			}
		}
		if(x) sum+=maybe;
		System.out.println(sum);
	}
}

  1. 问题 1458: [蓝桥杯][2013年第四届真题]错误票据
    建一个数组存数,用库函数直接排序,遍历排序部分,如果和后一位差值为2,本位值+1就是断号id,如果和后一位相等,本位值就是重号id。解题很容易,问题出在了数据的读入上,第一行的行号没用,直接读取数据就可以,但是在控制台却没有输出,但是提交可以通过。不太明白。
package 蓝桥;

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		sc.nextInt();
		int[] num = new int[100];
		int count = 0;
		while (sc.hasNextInt()) {
			num[count++] = sc.nextInt();
		}
		Arrays.sort(num, 0, count);
		for (int i = 0; i < count; i++) {
			if (num[i] == num[i + 1] - 2) {
				System.out.print(num[i] + 1);
				break;
			}
		}
		for (int i = 0; i < count; i++) {
			if (num[i] == num[i + 1]) {
				System.out.println(" " + num[i]);
				break;
			}
		}
	}
}

发布了41 篇原创文章 · 获赞 1 · 访问量 1467

猜你喜欢

转载自blog.csdn.net/qq_44467578/article/details/104064925