티스토리 뷰
1078.
정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구해보자. (사용에 편한 제어문을 사용할 것)
입력. 5
출력. 6
#include <stdio.h>
int main(void)
{
int n, sum=0;
scanf("%d", &n);
for(int i=1; i<=n; i++){
if(i%2==0){
sum+=i;
}
}
printf("%d",sum);
return 0;
}
1079.
'q'가 입력될 때까지 입력한 문자를 계속 출력하는 프로그램을 작성해보자.
입력. x b k d l q g a c
출력.
x
b
k
d
l
q
#include <stdio.h>
int main(void)
{
char c = 'a';
while(c!='q'){
scanf("%c", &c);
printf("%c", c);
}
return 0;
}
1080.
1, 2, 3 ... 을 계속 더해 나갈 때,
그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지
계속 더하는 프로그램을 작성해보자.
즉, 1부터 n까지 정수를 계속 더한다고 할 때,
어디까지 더해야 입력한 수보다 같거나 커지는지 알아보고자 하는 문제이다.
입력. 55
출력. 10
#include <stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
int sum=0;
for(int i=1; i<n+1; i++){
sum+=i;
if(sum>=n){
printf("%d",i);
break;
}
}
return 0;
}
1081.
1부터 n까지, 1부터 m까지 숫자가 적힌
서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보자.
입력. 2 3
출력.
1 1
1 2
1 3
2 1
2 2
2 3
#include <stdio.h>
int main(void)
{
int n1, n2;
scanf("%d %d", &n1, &n2);
for(int i=0; i<n1; i++){
for(int j=0; j<n2; j++){
printf("%d %d\n",i+1, j+1);
}
}
return 0;
}
1082.
16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운
영일(01)이는 16진수끼리 곱하는 16진수 구구단에 대해서 궁금해졌다.
A, B, C, D, E, F 중 하나가 입력될 때,
1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.
(단, A ~ F 까지만 입력된다.)
입력. B
출력.
B*1=B
B*2=16
B*3=21
.
.
.
B*E=9A
B*F=A5
#include <stdio.h>
int main(void)
{
int num;
scanf("%X", &num);
for(int i=1; i<16; i++){
printf("%X*%X=%X\n", num, i, num*i);
}
return 0;
}
1083.
3 6 9 게임을 하던 영일이는 3 6 9 게임에서 잦은 실수로 계속해서 벌칙을 받게 되었다.
3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자. 10 보다 작은 정수 1개가 입력된다.
입력. 9
출력. 1 2 X 4 5 X 7 8 X
#include <stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
for(int i=1; i<=n; i++){
switch(i){
case 3: case 6: case 9:
printf("X "); break;
default:
printf("%d ",i); break;
}
}
return 0;
}
1084.
빨강(red), 초록(green), 파랑(blue) 빛을 섞어
여러 가지 빛의 색을 만들어 내려고 한다.
빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때,
(빛의 강약에 따라 0 ~ n-1 까지 n가지의 빛 색깔을 만들 수 있다.)
주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과
총 가짓 수를 계산해보자.
입력. 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
#include <stdio.h>
int main(void)
{
int r, g, b, cnt=0;
scanf("%d %d %d", &r, &g, &b);
for(int i=0; i<r; i++){
for(int j=0; j<g; j++){
for(int k=0; k<b; k++){
printf("%d %d %d\n",i,j,k);
cnt++;
}
}
}
printf("%d",cnt);
return 0;
}
1085.
1초 동안 마이크로 소리강약을 체크하는 수를 h (헤르쯔, Hz 는 1초에 몇 번? 체크하는가를 의미한다.)
한 번 체크한 결과를 저장하는 비트 b (2비트를 사용하면 0 또는 1 두 가지, 16비트를 사용하면 65536가지..)
좌우 등 소리를 저장할 트랙 개수인 채널 c (모노는 1개, 스테레오는 2개의 트랙으로 저장함을 의미한다.)
녹음할 시간 s가 주어질 때, 필요한 저장 용량을 계산하는 프로그램을 작성해보자.
실제로 일반적인 CD 음질(44.1KHz=44100Hz, 16bit, 스테레오)로 1초 동안 저장하려면
(44100 * 16 * 2 * 1) / 8 bit의 저장공간이 필요하다.이미지의 가로 해상도 w, 세로 해상도 h, 한 픽셀을 저장하기 위한 비트 b 가 주어질 때,
압축하지 않고 저장하기 위해 필요한 저장 용량을 계산하는 프로그램을 작성해 보자.
**
8 bit(비트) = 1byte(바이트) // 8bit=1Byte
1024 Byte(210 byte) = 1KB(킬로 바이트) // 1024bit=1KB
1024 KB(210 KB) = 1MB(메가 바이트)
1024 MB(210 MB) = 1GB(기가 바이트)
1024 GB(210 GB) = 1TB(테라 바이트)
입력. 44100 16 2 10
출력. 1.7 MB
#include <stdio.h>
int main(void)
{
long h, b, c, s;
scanf("%ld %ld %ld %ld", &h, &b, &c, &s);
double size = (h*b*c*s)/8;
for(int i=0; i<2; i++){
size/=1024;
}
printf("%.1lf MB", size);
return 0;
}
1086.
이미지의 가로 해상도 w, 세로 해상도 h, 한 픽셀을 저장하기 위한 비트 b 가 주어질 때,
압축하지 않고 저장하기 위해 필요한 저장 용량을 계산하는 프로그램을 작성해 보자.
예를 들어 일반적인 1024 * 768 사이즈(해상도)의 각점에 대해 24비트(rgb 각각 8비트씩 3개)로 저장하려면 1024 * 768 * 24 bit의 저장 용량이 필요하다. 실제 그런지 확인하고 싶다면, 간단한 그림 편집/수정 프로그램을 통해 확인할 수 있다.
**
8 bit(비트) = 1byte(바이트) // 8bit=1Byte
1024 Byte(210 byte) = 1KB(킬로 바이트) // 1024bit=1KB
1024 KB(210 KB) = 1MB(메가 바이트)
1024 MB(210 MB) = 1GB(기가 바이트)
1024 GB(210 GB) = 1TB(테라 바이트)
입력. 1024 768 24
출력. 2.25 MB
#include <stdio.h>
int main(void)
{
int w, h, b;
scanf("%d %d %d", &w, &h, &b);
double size = (w*h*b)/8;
for(int i=0; i<2; i++){
size/=1024;
}
printf("%.2lf MB", size);
return 0;
}
1087.
언제까지 합을 계산할 지, 정수 1개를 입력받는다. 단, 입력되는 자연수는 100,000,000이하이다.
1, 2, 3, 4, 5 ... 순서대로 계속 더해가다가, 그 합이 입력된 정수보다 커지거나 같아지는 경우, 그때까지의 합을 출력한다.
평가 기준
점수 범위 : 평가
90 ~ 100 : A
70 ~ 89 : B
40 ~ 69 : C
00 ~ 39 : D
입력. 57
출력. 66
#include <stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
int sum=0;
for(int i=1; i<n+1; i++){
sum+=i;
if(sum>=n){
printf("%d",sum);
break;
}
}
return 0;
}
1088.
1부터 입력한 정수까지 1씩 증가시켜 출력하는 프로그램을 작성하되,
3의 배수인 경우는 출력하지 않도록 만들어보자.
예를 들면,
1 2 4 5 7 8 10 11 13 14 ...
와 같이 출력하는 것이다.
입력. 10
출력. 1 2 4 5 7 10
#include <stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
for(int i=1; i<=n; i++){
if(i%3!=0) printf("%d ", i);
}
return 0;
}
'Computer Science > 코드업' 카테고리의 다른 글
[코드업 기초 100제-C언어] 완료🎉🎉 (0) | 2021.02.19 |
---|---|
[코드업 기초 100제-C언어] 1089-1099 (0) | 2021.02.19 |
[코드업 기초 100제-C언어] 1071-1077 (0) | 2021.02.19 |
[코드업 기초 100제-C언어] 1059-1070 (0) | 2021.02.19 |
[코드업 기초 100제-C언어] 1053-1058 (0) | 2021.02.14 |