본문 바로가기
CodeUp 기초 100제/C

CodeUp[코드업] C언어 1086 ~ 1092 : [기초 - 종합]

by En_Geon 2019. 12. 9.

1086 : [기초 - 종합] 그림 파일 저장용량 계산하기

문제 설명 : https://codeup.kr/problem.php?id=1086

 

그림 파일 저장용량을 계산해 출력하는 문제다.

그림 파일 저장용량 계산방법은 문제 설명에 있다.

 

1085와 같은 유형의 문제다.

 

더보기

 

#include     <stdio.h>

int main()
{
    int w, h, b;
    scanf("%d %d %d", &w, &h, &b);
    
    printf("%.2f MB", (float)w * h * b / 8 / 1024/ 1024);
    return 0;
}

 

1087 : [기초 - 종합] 여기까지! 이제 그만~

문제 설명 : https://codeup.kr/problem.php?id=1087

 

누적 연산하다가, 그 합이 입력된 정수보다 커지거나 같아지는 경우 그때까지 합을 출력하는 문제다.

 

더보기

 

#include    <stdio.h>

int main()
{
    int x = 0, input = 0;
    scanf("%d", &input);  // 정수를 입력받아 input에 저장
    
    for(int i = 1; ; i++)  // for문 1부터 조건식이 없다.
    {
        x +=i;
        if(x >= input)
            break;

    // for문에 조건식이 없으므로 무한 반복이지만

    // if문 조건식에서 참이 되면 break를 만나 for문을 빠져나감
    }
    
    printf("%d", x);
    return 0;
}

 

1088 : [기초 - 종합] 3의 배수는 통과?

문제 설명 : https://codeup.kr/problem.php?id=1088

 

1부터 입력한 정수까지 1씩 증가시켜 출력할 때 3의 배수는 출력하지 않는 문제다.

 

더보기

 

#include <stdio.h>

int main()
{
    int input = 0;
    scanf("%d", &input);
    
    for(int i = 1; i <= input; i++)   // 1부터 시작해서 input까지 1씩 증가하면서 반복
    {
        if(i % 3 !=0)     // i를 3으로 나눈 나머지가 0(3의 배수)이 아니면 아래 구문을 실행 
            printf("%d ", i);
    }
    return 0;
}

 

1089 : [기초 - 종합] 수 나열하기 1

문제 설명 : https://codeup.kr/problem.php?id=1089

 

등차수열을 찾는 문제다.

 

더보기

 

#include     <stdio.h>

int main()
{
    int a = 0, d = 0, n =0;    // 시작 값 a, 등차의 값 d, 몇 번째 수인지 n
    scanf("%d %d %d", &a, &d, &n);
    
    for(int i = 1; i < n; i++) // 1부터 n미만까지 밑 구문을 실행
    {
        a += d;               // a = a + d; 누적 연산
    }
    printf("%d", a); 
    return 0;
}

 

/* 시작 값 a = 1 등차의 값 d = 3  몇 번째 n = 5 일 때

 

for문의 실행 순서

 

  1. 1  시작 값
  2. a = 1 + 3 ,  a = 4 
  3. a = 4 + 3,   a = 7
  4. a = 7 + 3,   a = 10
  5. a = 10 + 3, a = 13

결과로 13이 나온다.  */

 

1090 : [기초 - 종합] 수 나열하기 2

문제 설명 : https://codeup.kr/problem.php?id=1090

 

등비수열을 찾는 문제다.

1089의 등차수열 문제와 같은 유형이다.

 

등차수열에서는 덧셈 연산은 많이 커지지 않으므로 %d를 사용하였다.

등차수열에서도 int형의 범위를 넘어서면 long long int를 써야 하겠지만 현실적으로 등차수열로 그렇게 큰 범위는 구하지 않을 것이다.

등비수열에서는 배수로 커지기 때문에 long long int를 사용하였다.

 

더보기

 

#include     <stdio.h>

int main()
{
    long long int a = 0;
    int r = 0, n = 0;
    scanf("%lld %d %d", &a, &r, &n);
    
    for(int i = 1; i < n; i++)
    {
        a *= r;  // 등차수열과 같으나 등비수열의 누적 연산은 곱셈이다.
    }
    
    printf("%lld", a);
    return 0;
}

 

1091 : [기초 - 종합] 수 나열하기 3

문제 설명 : https://codeup.kr/problem.php?id=1091

 

어떤 규칙에 따라 나열 한 수열의 n번째 수를 구하는 문제다.

 

1089에 for문의 누적 연산과 같다.

 

더보기

 

#include      <stdio.h>

int main()
{
    long long int a;       // 시작 값
    int m, d, n;            //  곱할 값 m, 더할 값 d, 몇 번째 n
    scanf("%lld %d %d %d", &a, &m, &d, &n);
    
    for(int i = 1; i < n; i++)      // 1부터 n번째까지 반복
    {
        a *= m;     // a = a * m;  누적 연산
        a += d;    //  a = a + d;
    }
    
    printf("%lld", a);
    return 0;
}

 

1092 : [기초 - 종합] 함께 문제 푸는 날

문제 설명 : https://codeup.kr/problem.php?id=1092

 

3명이 각각 다르게 들어갈 때 동시에 함께 하는 날을 구하는 문제다.

 

더보기

 

#include   <stdio.h>

int main()
{
    int a, b, c, d;
    scanf("%d %d %d", &a, &b, &c);
    
    d = 1;
    while(d % a != 0 || d % b != 0 || d% c != 0) 
        d++;
     // a, b, c로 d를 나눈 나머지가 0이 아니면 반복하는 반복문

     // d를 a로 나눈 나머지가 0이 되어도 d를 b로 나눈 나머지가 0이 아니면 다시 반복함

     // d를 b로 나눈 나머지가 0이 되어도 d를 c로 나눈 나머지가 0이 아니면 다시 반복함

     // 조건식 3개 동시에 거짓이면 while을 탈출함

 

    printf("%d", d);

    return 0;

}

댓글