2019 년 제10 회 블 루 브리지 컵 [Java]
41393 단어 블 루 브리지 컵 문제 풀이자바
특별 수의 합
[제목 설명] 샤 오 밍 은 숫자 에 2, 0, 1, 9 가 들 어 있 는 숫자 에 관심 이 많다 (선도 0 은 포함 되 지 않 음). 1 에서 40 까지 이런 수 는 1, 2, 9, 10 에서 32, 39 와 40 을 포함 하고 모두 28 개 로 그들의 합 은 574 이다.실례 지만, 1 부터 n 까지 모든 이 수의 합 은 얼마 입 니까?[입력] 한 줄 에 두 개의 정수 n 을 포함 합 니 다.[출력] 출력 한 줄 은 하나의 정 수 를 포함 하고 조건 을 만족 시 키 는 수 와 [샘플 입력] 40 [샘플 출력] 574 를 나타 낸다.
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum = 0;
for(int i = 1; i <= n; i++) {
String str = Integer.toString(i);
// if(str.indexOf('2') != -1 || str.indexOf('0') != -1 || str.indexOf('1') != -1 || str.indexOf('9') != -1) {
if(str.contains("2") || str.contains("0") || str.contains("1") || str.contains("9")) {
sum += i;
}
}
System.out.println(sum);
sc.close();
}
}
등차 수열
[제목 설명] 수학 선생님 께 서 샤 오 밍 에 게 등차 수열 구 화 문 제 를 내 주 셨 다.그러나 부주의 한 샤 오 밍 은 일부 수열 을 잊 고 그 중 N 개의 정수 만 기억 했다.지금 이 N 개의 정 수 를 드 리 겠 습 니 다. 샤 오 밍 은 이 N 개의 정 수 를 포함 하 는 가장 짧 은 등차 수열 이 몇 가지 가 있 는 지 알 고 싶 습 니 다.[입력] 입력 한 첫 줄 은 정수 N 을 포함 합 니 다.두 번 째 줄 은 N 개의 정수 A1, A2, ·, AN 을 포함한다.(A1 ∼ AN 이 반드시 등차 수열 의 순서에 따라 제시 되 는 것 은 아니 므 로 주의 하 세 요) [출력] 하나의 정 수 를 출력 하여 답 을 표시 합 니 다 [샘플 입력] 5, 2, 6, 4, 10 20 [샘플 출력] 10
코드
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] x = new int[N];
for (int i = 0; i < N; i++) {
x[i] = sc.nextInt();
}
Arrays.sort(x);
int d = Integer.MAX_VALUE;
for (int i = 0; i < x.length - 1; i++) {
if (d > x[i + 1] - x[i]) {
d = x[i + 1] - x[i];
}
}
if (d == 0) {
System.out.println(N);
} else {
System.out.println((x[x.length - 1] - x[0]) / d + 1);
}
sc.close();
}
}
접미사 식
[제목 설명] N 개의 플러스 번호, M 개의 마이너스 번호 와 N + M + 1 개의 정수 A1, A2, · · ·, AN + M + 1 을 지정 합 니 다. 샤 오 밍 은 이 N 개의 플러스 번호, M 개의 마이너스 번호 와 N + M + 1 개의 정수 로 구 성 된 합 법 적 인 접미사 표현 식 에서 결과 가 가장 큰 것 은 무엇 입 니까?이 가장 큰 결 과 를 출력 해 주세요.예 를 들 어 123 + - 를 사용 하면 '23 + 1 -' 이라는 접미사 표현 식 의 결 과 는 4 로 가장 크다.[입력] 첫 줄 에는 두 개의 정수 N 과 M 이 포함 되 어 있 습 니 다.두 번 째 줄 은 N + M + 1 개의 정수 A1, A2, ·, AN + M + 1 을 포함한다.[출력] 출력 개수, 정 답 [샘플 입력] 1 1 1 2 3 [샘플 출력] 4
코드
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int add = sc.nextInt();
int reduce = sc.nextInt();
int t = add + reduce + 1;
int[] number = new int[t];
for (int i = 0; i < t; i++) {
number[i] = sc.nextInt();
}
long sum = 0;
if (reduce == 0 && add == 0) {
sum += number[0];
}
if (reduce == 0 && add != 0) {
for (int i = 0; i < t; i++) {
sum += number[i];
}
}
if (add == 0 && reduce != 0) {
Arrays.sort(number);
if (number[0] < 0) {
for (int i = 0; i <= reduce; i++) {
if (number[i] > 0) {
sum += number[i];
} else {
sum -= number[i];
}
}
} else {
for (int i = 1; i <= reduce; i++) {
sum += number[i];
}
sum -= number[0];
}
}
if (add != 0 && reduce != 0) {
int reduceNum = 0;
for (int i = 0; i < t; i++) {
if (number[i] < 0) {
reduceNum++;
}
}
if (reduce >= reduceNum) {
if (reduceNum != 0) {
Arrays.sort(number);
for (int i = 0; i < reduceNum; i++) {
number[i] = -number[i];
}
// Arrays.sort(number);
for (int i = t - 1; i >= 0; i--) {
sum += number[i];
}
}else {
Arrays.sort(number);
for (int i = t - 1; i > 0; i--) {
sum += number[i];
}
sum -= number[0];
}
} else {
Arrays.sort(number);
sum += number[t - 1];
for (int i = 0; i < t - 1; i++) {
if (number[i] > 0) {
sum += number[i];
} else {
sum -= number[i];
}
}
}
}
System.out.println(sum);
sc.close();
}
}
빙빙 돌다
[제목 설명] 그림 회전 은 그림 에 대한 가장 간단 한 처리 방식 중 하나 로 본 문제 에서 그림 을 시계 방향 으로 90 도 회전 시 켜 야 한다.우 리 는 n 을 하나 쓴다.× m 의 2 차원 배열 은 그림 을 표시 합 니 다. 예 를 들 어 아래 에 3 을 드 립 니 다.× 4 의 그림 예: 1, 3, 5, 7, 7, 6, 3, 5, 9, 7 이 그림 은 시계 방향 으로 90 도 회전 한 후의 그림 은 다음 과 같다.
[입력] 입력 한 첫 줄 은 두 개의 정수 n 과 m 를 포함 하고 각각 줄 수 와 열 수 를 나타 낸다.다음 n 줄, 줄 마다 m 개의 정 수 는 주어진 그림 을 표시 합 니 다.그림 의 모든 요소 (픽 셀) 는 0 에서 255 사이 의 정수 (0 과 255 포함) 입 니 다.
[출력] m 줄 n 열 을 출력 하여 회전 후의 그림 을 표시 합 니 다.
[샘플 입력] 3, 4, 1, 3, 5, 7, 9, 8, 7, 6, 3, 5, 9, 1, 5, 8, 3, 9, 7, 5, 7, 6, 7.
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[][] x = new int[m][n];
for (int j = n - 1; j >= 0; j--) {
for(int i = 0; i < m; i++) {
x[i][j] = sc.nextInt();
}
}
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
System.out.print(x[i][j] + " ");
}
System.out.println();
}
sc.close();
}
}
Fibonacci 수열 과 황금 분할
[제목 설명] 피 보 나치 수열 은 매우 유명한 수열 이다. F [1] = 1, F [2] = 1, i > 3, F [i] = F [i - 1] + F [i - 2] 피 보 나치 수열 은 특수 한 성질 을 가지 고 있 는데 앞의 것 과 뒤의 비례, F [i] / F [i + 1] 은 금 분할 에 가깝다.이 성질 을 검증 하기 위해 정수 N 을 정 하고 F [N] / F [N + 1] 을 계산 하고 8 비트 의 소 수 를 유지 하 십시오.[입력] 정수 N 입 니 다.(1 ≤ N ≤ 200000000) 【 수출 】 F [N] / F [N + 1].답 은 8 자리 소 수 를 보류한다.[샘플 입력] 2 [샘플 출력] 0.5000000
코드
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
if(n == 1) {
System.out.println("1.00000000");
}
else if (n > 50) {
System.out.println("0.61803399");
} else {
BigDecimal[] f = new BigDecimal[(int)n + 2];
f[1] = BigDecimal.ONE;
f[2] = BigDecimal.ONE;
for (int i = 3; i <= n + 1; i++) {
f[i] = f[i - 1].add(f[i - 2]);
}
System.out.println(f[(int)n].divide(f[(int)n + 1], 8, BigDecimal.ROUND_HALF_UP));
}
sc.close();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【eclipse】같은 파일을 2개 열고 싶다【에디터의 분할】「이런 것은 다른 클래스로 나누어야 한다!」라든지 있다고는 생각합니다만. 실제로 실무 속에서 프로그램을 쓰고 있으면, 이런 소스에 눈에 걸리는 일도 적지 않을까···. 그건 그렇고, 내 노트북에서 이렇게 보입니다 네...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.