초기 네이버 기록/과거 공부 기록

씹어먹는 C언어코딩 공부

뜨거운 개발자 2023. 1. 6. 02:44
//문제 2 피라미드 모양을 거꾸로 만드시오
#include<stdio.h>
int main() {
	int num;//층수
	printf("피라미드의 층수를 입력하시오");
	scanf_s("%d", &num);//피라미드 층수 입력
	
	for (int i=0; i <= num; i++) {//i는 0부터 층수까지 반복된다.
		int star_num = 2* num - 2 * i;
		int empty_num = i;
		for (int k = 1; k <= empty_num; k++) {
			printf(" ");

			
		}

		for (int j = 0; j <= star_num; j++) {
			printf("*");
		}
		printf("\n");
	}
	return 0;
}
//문제 3번 :1000이하의 3또는 5의 배수인 자연수들의 합을 구한다.
#include<stdio.h>
int main() {
	printf("1000이하의 3또는 5의 배수인 자연수들의 합을 구하자.");
	int num=0;//숫자들의 합
	for (int i = 1; i <= 1000; i++) {
		if (i%3==0) {
			num = num + i; 
			continue;
		}
		if (i % 5 == 0) {
			num = num + i;
		}
	}
	printf("%d", num);
}

위의 코드는 내가 짠 코드 -for 문이 익숙해져서 for문으로 짰는데 아래분은 while 문으로 짜셨다.

#include<stdio.h>
int main() {

	int num = 0;
	int num_sum=0;
	while (num < 1001)
	{
		if (num % 3 == 0 || num % 5 == 0)
		{
			num_sum += num;
		}
		num++;
	}
	printf("1000 이하의 3 또는 5 의 배수인 자연수들의 합 : %d", num_sum);
}
//문제 4번 피보나치 수열의 짝수항의 합을 구하여라
#include <stdio.h>
int main() {
	int sum = 0;

			int A=1;//첫 숫자
			int B = 2;//두번째 숫자
			int C;//세번째 숫자
			int D;//네번째 숫자
			for (;;) {
				sum = sum + B;
				C = A + B;
				D = B + C;
				if (D>10000000) {
					break;
				}
				
				
				sum = sum + D;

				A = C + D;
				B = D + C;
				if (B > 10000000) {
					break;
				}
	}
			printf("%d", sum);
			return 0;
}

4번 문제가 개인적으로 가장 오래걸렸다

int main() {
	int sum = 1;
	int i = 1;
	int i1 = 1;
	int i2 = 1;
	int tmp = 0;

	while (tmp <= 1000000)
	{
		tmp = i1 + i2;
		i1 = i2;
		i2 = tmp;
		if (i % 2 == 0) {//(!i%2)라는 새로운 방식을 알게 되었다.
			sum += tmp;
			printf("%d번째 숫자 %d:\n", i, tmp);

		}

		i++;
	}



	printf("숫자들의 합은:%d", sum);
}

이게정답이고 전에 있던 값은 정답이 아니다.

오늘은 여기까지

728x90