[C] CodeUp 1080~1089번 문제풀이.
[1080] 언제까지 더해야 할까?
[입력] 정수 1개가 입력된다.
[출력] 1, 2, 3, 4, 5 … 를 순서대로 계속 더해 합을 만들어가다가,
입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력한다.
[입력 예시] 55
[출력 예시] 10
#include <stdio.h>
int main(void) {
int num = 0;
int blank = 0;
int i = 0;
scanf("%d", &num);
while (1) {
blank += i;
if (blank >= num) {
break;
}
i++;
}
printf("%d", i);
}
[1081] 주사위를 2개 던지면?
[입력] 주사위 2개의 면의 개수 n, m이 공백을 두고 입력된다.
단, n, m은 10이하의 자연수
[출력] 나올 수 있는 주사위의 숫자를 한 세트씩 줄을 바꿔 모두 출력한다.
첫 번째 수는 n, 두 번째 수는 m으로 고정해 출력하도록 한다.
[입력 예시] 2 3
[출력 예시]
1 1
1 2
1 3
2 1
2 2
2 3
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int n = 0, m = 0;
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
printf("%d %d \n", i, j);
}
}
return 0;
}
[1082] 16진수 구구단?
[입력] 16진수로 한 자리 수가 입력된다.
단, A ~ F 까지만 입력된다.
[출력] 입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력한다.
계산 결과도 16진수로 출력해야 한다.
[입력 예시] B
[출력 예시]
B*1=B
B*2=16
B*3=21
B*4=2C
B*5=37
B*6=42
B*7=4D
B*8=58
B*9=63
B*A=6E
B*B=79
B*C=84
B*D=8F
B*E=9A
B*F=A5
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int num = 0;
scanf("%X", &num);
for (int i = 1; i < 16; i++) {
printf("%X*%X=%X \n", num, i, num * i);
}
}
[1083] 3 6 9 게임의 왕이 되자!
[입력] 10 보다 작은 정수 1개가 입력된다.
(1 ~ 9)
[출력] 1 부터 그 수까지 순서대로 공백을 두고 수를 출력하는데,
3 또는 6 또는 9인 경우 그 수 대신 영문 대문자 X 를 출력한다.
[입력 예시] 9
[출력 예시] 1 2 X 4 5 X 7 8 X
#include <stdio.h>
int main(void) {
int num = 0;
scanf("%d", &num);
for (int i = 1; i <= num; i++) {
if (i % 3 == 0) {
printf("X ");
}
else {
printf("%d ", i);
}
}
}
[1084] 빛 섞어 색 만들기
[입력] 빨녹파(r, g, b) 각 빛의 강약에 따른 가짓수(0 ~ 128))가 공백을 사이에 두고 입력된다.
예를 들어, 3 3 3 은 각 색깔 빛에 대해서 그 강약에 따라 0~2까지 3가지의 색이 있음을 의미한다.
[출력] 만들 수 있는 rgb 색의 정보를 오름차순(계단을 올라가는 순, 12345… abcde…, 가나다라마…)으로 줄을 바꿔 모두 출력하고, 마지막에 그 개수를 출력한다.
[입력 예시] 2 2 2
[출력 예시]
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
8
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int r, g, b, i, j, k;
scanf("%d %d %d", &r, &g, &b);
for (i = 0; i < r; i++)
for (j = 0; j < g; j++)
for (k = 0; k < b; k++)
{
printf("%d %d %d\n", i, j, k);
//c++;
}
printf("%d ", r*g*b);
return 0;
}
[1085] 소리 파일 저장용량 계산하기
[입력] h, b, c, s 가 공백을 두고 입력된다.
h는 48,000이하, b는 32이하(단, 8의배수), c는 5이하, s는 6,000이하의 자연수이다.
[출력] 필요한 저장 공간을 MB 단위로 바꾸어 출력한다.
단, 소수점 둘째 자리에서 반올림해 첫째 자리까지 출력하고 MB를 공백을 두고 출력한다.
[입력 예시] 44100 16 2 10
[출력 예시] 1.7 MB
#include <stdio.h>
int main(){
long long int h, b, c, s;
double result;
scanf("%lld %lld %lld %lld", &h, &b, &s, &c);
result = h * b * s * c;
printf("%.1lf MB", result/(8*1024*1024));
}
[1086] 그림 파일 저장용량 계산하기
[입력] w, h, b 가 공백을 두고 입력된다.
단, w, h는 모두 정수이고 1~1024 이다. b는 40이하의 4의 배수이다.
[출력] 필요한 저장 공간을 MB 단위로 바꾸어 출력한다.
소수점 이하 셋째 자리에서 반올림해 둘째 자리까지 출력한 뒤 MB를 출력한다.
[입력 예시] 1024 768 24
[출력 예시] 2.25 MB
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int w, h, b;
scanf("%d %d %d", &w, &h, &b);
float f = w * h * b;
printf("%.2f MB", f / 8 / 1024 / 1024);
return 0;
}
[1087] 여기까지! 이제 그만~
[입력] 언제까지 합을 계산할 지, 정수 1개를 입력받는다.
단, 입력되는 자연수는 100,000,000이하이다.
[출력] 1, 2, 3, 4, 5 … 순서대로 계속 더해가다가, 그 합이 입력된 정수보다 커지거나 같아지는 경우, 그때까지의 합을 출력한다.
[입력 예시] 57
[출력 예시] 66
#include <stdio.h>
int main(void) {
int num = 0;
int blank = 0;
scanf("%d", &num);
for (int i = 0;; i++) {
blank += i;
if (blank >= num) {
break;
}
}
printf("%d", blank);
}
[1088] 3의 배수는 통과?
[입력] 정수 1개를 입력받는다.
(1 ~ 100)
[출력] 1부터 입력한 정수보다 작거나 같을 때까지 1씩 증가시켜 출력하되
3의 배수는 출력하지 않는다.
[입력 예시] 10
[출력 예시] 1 2 4 5 7 8 10
#include <stdio.h>
int main(void) {
int num = 0;
scanf("%d", &num);
for (int i = 1; i <= num; i++) {
if (i % 3 == 0) {
continue;
}
else {
printf("%d ", i);
}
}
}
[1089] 수 나열하기 1
[입력] 시작 값(a), 등차의 값(d), 몇 번째 수 인지를 의미하는 정수(n)가
공백을 두고 입력된다.(모두 0 ~ 100)
[출력] n번째 수를 출력한다.
[입력 예시] 1 3 5
[출력 예시] 13
#include <stdio.h>
int main(void) {
int a = 0; // 시작 값
int d = 0; // 등차
int n = 0; // 정수
scanf("%d %d %d", &a, &d, &n);
for (int i=1;i<n;i++) {
a += d;
}
printf("%d", a);
}
댓글남기기