//문제 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
'초기 네이버 기록 > 과거 공부 기록' 카테고리의 다른 글
헷갈릴때 보기! 예제 포인터의 포인터 인자로 받는 함수 (0) | 2023.01.07 |
---|---|
씹어먹는 C언어 함수 공부 저장 (3) | 2023.01.07 |
오래 걸린 문제(성적 순 배열 및 막대 그래프 출력 문제)(씹어먹는C언어) (0) | 2023.01.07 |
(흔적)코딩 공부 기록 switch문과 배열 (씹어먹는 C언어 정답) (0) | 2023.01.07 |
씹어먹는 C언어첫번째 코딩 과제 2022. 1. 7. 23:43 (2) | 2023.01.05 |