본문 바로가기

코딩연습/알고리즘

알고리즘 7월 4째주

1279 : 홀수는 더하고 짝수는 빼고 1

두 자연수 a, b 사이의 구간에 대해서

홀수는 더하고 짝수는 뺀다음의 합을 출력하시오.

예)

a = 5, b=10 일 경우, 5 - 6 + 7 - 8 + 9 - 10 = -3

#include <stdio.h>
int main(){
	int a,b,i, tmp;
	int total = 0;
	scanf("%d %d", &a, &b);
	for(i=a;i<b+1;i++){
		tmp = i;
		if(tmp%2==0){
			tmp=tmp-(tmp*2);
		}
		total = total + tmp;
	}
	printf("%d", total);
}

1280 : 홀수는 더하고 짝수는 빼고 2

두 자연수 a, b 사이의 구간에 대해서

홀수는 더하고 짝수는 빼는 식을 보여준 후 결과를 출력하시오.

단, 결과가 양수이면 +를 붙이지 않는다.

예)

a = 5, b=10 일 경우, +5-6+7-8+9-10=-3

a = 6, b=9 일 경우, -6+7-8+9=2

#include <stdio.h>
int main(){
	int a,b,i, tmp;
	int total = 0;
	scanf("%d %d", &a, &b);
	for(i=a;i<b+1;i++){
		tmp = i;
		if(tmp%2==0){
			tmp=tmp-(tmp*2);
			printf("-");
			printf("%d", i);
		}
		else{
			printf("+");
			printf("%d", i);
		}
		total = total + tmp;
	}
	printf("=");
	printf("%d", total);
}

1281 : 홀수는 더하고 짝수는 빼고 3

두 자연수 a, b 사이의 구간에 대해서

홀수는 더하고 짝수는 빼는 식을 보여준 후 결과를 출력하시오.

예)

a = 5, b=10 일 경우, 5-6+7-8+9-10=-3

a = 6, b=9 일 경우, -6+7-8+9=+2

#include <stdio.h>
int main(){
	int a,b,i, tmp;
	int total = 0;
	scanf("%d %d", &a, &b);
	for(i=a;i<b+1;i++){
		tmp = i;
		if(tmp%2==0){
			tmp=tmp-(tmp*2);
			printf("-");
			printf("%d", i);
		}
		else{
			if(i==a){
				printf("%d", i);
			}
			else{
				printf("+");
				printf("%d", i);
			}
		}
		total = total + tmp;
	}
	printf("=");
	if(total>0){
		printf("+");
	}
	printf("%d", total);
}

1282 : 제곱수 만들기

nn이 입력되면 kk를 빼서 제곱수를 만들 수 있는 kk를 구하고,

그 제곱수에 루트를 씌운 수(제곱근) tt를 구하여라.

이 때 k는 여러가지가 될 수 있는데 가장 작은 k를 출력한다.

#include <stdio.h>
int main(){
	int n,k=0,t,i,cnt=0;
	scanf("%d", &n);
	for(i=1;i<n;i++){
		if(i*i>n){
			t=i-1;
			break;
		}
		else if(i*i==n){
			t=i;
			break;
		}
	}
	for(i=n;i>t*t;i--){
		k++;
	}
	printf("%d %d", k, t);
}

1370 : 지그재그 출력하기

높이 h와 반복휫수 r이 주어질때, 별을 다음과 같이 지그재그로 출력하자.

#include <stdio.h>
 
int main(){
    int h = 0,r = 0;
    int i = 0,j = 0,k = 0;
    scanf("%d %d",&h,&r);
    for(i = 0;i<r;i++){
        for(j = 0;j<h;j++){
            for(k = 0;k<j;k++){
                printf(" ");
            }
            printf("*");
            printf("\n");
        }
        for(j = h-2;j>=0;j--){
            for(k = 0;k<j;k++){
                printf(" ");
            }
            printf("*");
            printf("\n");
        }
    }
}

'코딩연습 > 알고리즘' 카테고리의 다른 글

8월 1번째주 알고리즘  (0) 2019.08.05
코드업 1101-1110  (0) 2019.07.08