蓝桥杯历年真题(+2)
---------------------------------------已开启连续更新模式
平方序列
题目描述
小明想找到两个正整数 X 和 Y,满足 2019 < X < Y和2019^2, X^2, Y^2组成等差数列。 请你求出在所有可能的解中,X + Y 的最小值是多少?
这道题顺手起来~
2019 < X < Y
2019^2, X^2, Y^2
两个条件
(2019<X && X<Y) && (XX-20192019==YY-XX)
Bingo~~~
哇哇哇哇哇呜!
来我们上代码咯
小伙伴们一起进步哦
package com.kang.practice;
/**
* @author Darling
* @since 1.0
*/
public class Prac{
public static void main(String[] args) {
int X;
int Y;
for (X=2020;X<4000; X++){
for (Y=2011;Y<4000;Y++){
if ((2019<X && X<Y) && (X*X-2019*2019==Y*Y-X*X)) {
System.out.println(X + Y);
break;
}
}
}
}
}
等差数列
题目描述
数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中 N 个整数。 现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?
输入描述
输入的第一行包含一个整数N。 第二行包含N 个整数A1,A2,…, An。(注意A1~An 并不一定是按等差数列中的顺序给出)
其中,2<=N<=100000,0<=Ai<=10^9
输出描述
输出一个整数表示答案。
样例输入
5
2 6 4 10 20
样例输出
10
样例说明:
包含2、6、4、10、20 的最短的等差数列是2、4、6、8、10、12、14、16、18、20。
分析:
已知共有N个数,我们将N个数从大到小或从小到大有序排列,将其两两作差求公差,然后求出它们的最大公因子,即为数列的公差
由数列中的最大值和最小值和公差,可求此等差数列共有几项~
这样就vansl
package com.kang.practice;
import java.util.Arrays;
import java.util.Scanner;
/**
* @author Darling
* @since 1.0
*/
public class Practice07 {
public static int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] array = new int[N];
for (int i = 0; i < array.length; i++) {
array[i] = sc.nextInt();
}
Arrays.sort(array);
//将给定数列升序排列
if (array[N-1] == array[0]){
System.out.println(N);
return;
}
int d = array[1]-array[0];
for (int i = 1; i < array.length - 1; i++) {
d = gcd(array[i + 1] - array[i], d);
}
System.out.println((array[N - 1] - array[0]) / d + 1);
}
}
版权声明:本文为m0_51945027原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。