제3 회 전지 배 시 뮬 레이 션 문제 풀이

A
제목 설명 은 정수 n 을 보 여 줍 니 다. 1 부터 n 까지 의 모든 정수 중 몇 개의 숫자 가 있 는 여러분 수 와 9 입 니까?
입력 형식 은 1000000 을 넘 지 않 는 정수 N 을 입력 하 십시오.
출력 형식 은 정 수 를 출력 하여 답 을 표시 합 니 다.
입 출력 사례 입력 50 출력 5 설명 / 제시 1 부터 50 까지 의 모든 정수 중 9, 18, 27, 36, 45 이 5 개의 숫자 가 요구 에 부합 합 니 다.
제목 링크
#include  

using namespace std;

int main(){
     
	int n;
	scanf("%d",&n);
	int count = 0;
	do{
     
		int sum = 0;
		int i = n;
		while(i){
     
			int k = i % 10;
			i /= 10;
			sum += k; 
		}
		if(sum == 9) count++;
	}while(n--);
	printf("%d
"
,count); return 0; }

B
제목 은 직각 삼각형 의 두 직각 변 을 묘사 하 는데 a, b (a ≤ b) 이 고 그 사각 변 은 c 이 며 a, b, c 는 모두 정수 이다.
지금 우 리 는 이미 사각 길이 c 를 알 았 습 니 다. 이 직각 삼각형 의 두 직각 변 의 길 이 는 무엇 입 니까?
형식 을 입력 하여 정수 c (1 < = c < = 1.41 * 104) 를 입력 하 십시오.
출력 형식 은 두 개의 정수 a 를 출력 하고 b 는 답 을 표시 합 니 다.정수 해 를 보증 하 다.가능 한 한 많은 답 이 있다 면 aa 가 가능 한 한 작 게 확보 하 세 요.
입 출력 샘플 입력 \ # 1 복사 5 출력 \ # 1 복사 3 4 문제 링크
#include 

using namespace std;

int main(){
     
	int a,b,c;
	scanf("%d",&c);
	for(b = c; b >=1;b-- ){
     
		for(a = 1;a <= b;a++){
     
			if(a * a + b * b == c*c) {
     
				printf("%d %d
"
,a,b); return 0; }else if(a * a + b * b > c * c){ break; }else continue; } } return 0; }

C
제목 설명 은 컴퓨터 의 크기 단위 가 B, KB, MB 등 이라는 것 을 알 고 있 습 니 다. 이제 계산 기 를 만들어 크기 단위 환산 을 하 십시오.힌트, 1GB = 210 MB = 220 KB = 230 B.
0 에서 1023 사이 의 정수, 단위 이름 (대문자), 같은 번호 와 물음표, 그리고 두 번 째 단위 이름 을 입력 하 십시오.
단 위 는 GB, MB, KB, B 사이 의 하나 일 수 있 습 니 다.
출력 형식 은 소수점 뒤의 6 자리 까지 숫자 를 출력 합 니 다.
입 출력 샘플 입력 \ # 1 복사 128 MB =?GB 출력 \ # 1 복사 0.125000 입력 \ # 2 복사 64MB =?KB 출력 \ # 2 문제 링크 복사
#include 

using namespace std;

int main(){
     
	string s;
	cin >> s;
	char R,C;
	double a = 0;
	bool falg1 = true,falg2 = false;
	for(int i = 0;i < s.length();i++){
     
		if(falg1){
     
			if(s[i] == 'B') {
     
				falg1 = false;
				falg2 = true;
			}
			if(s[i] <='9' && s[i] >= '0'){
     
				a *= 10;
				a += s[i] - '0';
			}
		}
		if(falg2){
     
			if(s[i-1] <='9' && s[i-1] >= '0') R = 'B';
			else R = s[i-1];
			falg2 = false;
		}
		if(s[i] == '?'){
     
			C= s[i+1];
			break;	
		}
	}
	if(R == 'G'){
     
		if(C == 'G'){
     
			printf("%.6lf
"
,a); }else if(C == 'M'){ printf("%.6lf
"
,a*(pow(2,10))); }else if(C == 'K'){ printf("%.6lf
"
,a*(pow(2,20))); }else if(C == 'B'){ printf("%.6lf
"
,a*(pow(2,30))); } }else if(R == 'M'){ if(C == 'G'){ printf("%.6lf
"
,a*(pow(2,-10))); }else if(C == 'M'){ printf("%.6lf
"
,a); }else if(C == 'K'){ printf("%.6lf
"
,a*(pow(2,10))); }else if(C == 'B'){ printf("%.6lf
"
,a*(pow(2,20))); } }else if(R == 'K'){ if(C == 'G'){ printf("%.6lf
"
,a*(pow(2,-20))); }else if(C == 'M'){ printf("%.6lf
"
,a*(pow(2,-10))); }else if(C == 'K'){ printf("%.6lf
"
,a); }else if(C == 'B'){ printf("%.6lf
"
,a*(pow(2,10))); } }else if(R == 'B'){ if(C == 'G'){ printf("%.6lf
"
,a*(pow(2,-30))); }else if(C == 'M'){ printf("%.6lf
"
,a*(pow(2,-20))); }else if(C == 'K'){ printf("%.6lf
"
,a*(pow(2,-10))); }else if(C == 'B'){ printf("%.6lf
"
,a); } } return 0; }

D
제목 은 A 군 이 한 예능 프로그램 에 출연 하 는 것 을 묘사한다.모두 n (3 < = n < 106) 명의 심사 위원 이 참여 하여 점 수 를 매 긴 다 (점수 범 위 는 0 에서 100 의 정수). 각 심사 위원 은 순서대로 자신의 점 수 를 나타 낸다.
프로그램 효 과 를 위해 세 번 째 심사 위원 부터 i 번 째 심사 위원 이 점 수 를 매 길 때마다 이 선 수 는 전 i 번 심사 위원 들 의 점수 에서 최고 점수 와 최저 점 수 를 하나 빼 고 i - 1 번 심사 위원 들 의 평균 점 수 를 계산 해 2 명의 소 수 를 유지 해 야 한다.
형식 첫 줄 에 정수 n 을 입력 하여 심사 위원 수 를 표시 합 니 다.
두 번 째 줄 은 n 개의 정 수 를 출력 하여 각 심사 위원 들 의 점 수 를 나타 낸다.
출력 형식 출력 은 모두 n - 2 줄 로 줄 마다 해당 하 는 답 을 표시 합 니 다.
입력 출력 샘플 입력 6 11 45 14 19 81 출력 14.00 16.50 17.33 24.25 문제 링크
#include 

using namespace std;

int main(){
     
	int n;
	scanf("%d",&n);
	double count = 0.0;
	double ave,sum = 0;
	int max = -1,min = 101;
	for(int i = 0;i < n;i++){
     
		int k;
		bool flag1 = false,flag2 = false;
		int premax,premin;
		scanf("%d",&k);
		if(k < min) {
     
			premin = min;
			min = k;
			flag1 = true;
		}
		if(k > max) {
     
			premax = max;
			max = k;
			flag2 = true;
		}
		if(i == 0 || i == 1) {
     
			sum +=k;
			continue;
		}
		count++;
		if(i == 2) {
     
			sum += k;
			sum -= (max + min);
			ave = sum;
			printf("%.2lf
"
,ave); continue; } if(flag1) sum += premin; else if(flag2) sum += premax; else sum += k; ave = sum/count; printf("%.2lf
"
,ave); } return 0; }

E
제목 은 1582 년 까지 4 를 배수 로 한 해 를 윤년 으로 묘사 했다.정상 적 인 상황 에서 1 년 중 1 월 부터 12 월 까지 의 일 수 는 각각 31, 28, 31, 30, 31, 31, 31, 30, 31, 31, 30, 30, 30, 31, 31, 31, 31 일이 다.이 해 가 윤년 이 라면, 2 월 은 29 일이 다.
그러나 한 황 제 는 이렇게 하 는 것 이 사실 정확 하지 않 아 오차 가 생 길 수 있다 는 것 을 알 고 1582 년 부터 4 를 배수 로 하 는 해 는 100 을 배수 로 하고 400 이 아 닌 배수 년 을 제외 하고 윤년 이 라 고 규정 했다.아울러 오 차 를 없 애기 위해 1582 년 10 월 4 일의 다음 날 을 1582 년 10 월 15 일 로 정 하면 서 중간 날 짜 는 존재 하지 않 는 것 으로 간주 했다.지금 날 짜 를 제시 하고 이 날 짜 를 서기 1 년 1 월 1 일 까지 거 친 날 짜 를 계산한다.
입력 형식 은 일월 년 의 형식 에 따라 데 이 터 를 입력 하 는데 그 중에서 일 은 1 에서 31 사이 의 정수 이 고 월 은 3 개의 대문자 이 며 연 은 1 에서 9999 사이 의 정수 이다.이 날 짜 는 합 법 적 이 고 존재 한 다 는 것 을 보증 합 니 다.
달의 대문자:
1 월: JAN 2 월: FEB 3 월: MAR 4 월: APR 5 월: MAY 6 월: JUN 7 월: JUL 8 월: AUG 9 월: SEP 10 월: OCT 11 월: NOV 12 월: DEC 출력 형식 출력 정수 표시
입 출력 샘플 입력 1JAN 1 출력 0 입력 4OCT 1582 출력 577736 입력 15OCT 1582 출력 577737 입력 21NOV 2020 출력 737751 문제 링크

좋은 웹페이지 즐겨찾기