피보나치 수열의 지정항의 수열을 표시하고, 그 항까지의 합을 구하는 프로그램.-업로드 파일은 주석문이 없음.
#include <stdio.h>
void main()
{
/*지정 항까지의 합을 구하도록 했습니다. if문과 for문을 썼습니다. */
/* long형 변환까지는 못 해서, 큰수를 입력하면, 엉뚱한 숫자가 나오게 됩니다. */
/* (sum은 21항 까지, hang은 23항까지) */
int a=1,b=1,c=0,n=0,i,m,sum=0; /*변수를 선언합니다*/
printf("n hahaha myut hang?"); /*몇 항을 묻습니다*/
scanf("%d",&n); /*숫자를 입력 받습니다*/
m=n-2; /*몇 번 반복할지 구하는 변수 m*/
i=m/3; /*몇 번 반복할지 구하는 변수 i*/
if (n>=3) /*항이 3보다 작은 수를 제외 하는 if문*/
{
if (m%3==0) /*n이 5, 8, 11 항일 때 구하는 if 문*/
for(sum=a+b;i>0;i--) /*for문 시작 i가 0일 때 제외, 합을 a+b로 지정*/
{c=a+b;/*2=1+1*/ /*첫번째 연산 예시 주석과 첫항+두번째항*/
sum=sum+c; /*첫항+둘째항에 셋째항을 더함(6째항, 9째항, 12째항.... 더함) */
a=b+c;/*3=1+2*/ /*두번째 연산 예시 주석과 두번째항+세번째항을 새로운 넷째항에 넣음(변수를 a로 유지했음-반복할 때 쓰이게 됨)*/
sum=sum+a; /*넷째 항까지 더함(7째항, 10째항, 13째항.... 더함)*/
b=c+a;/*5=2+3*/ /*세번재 연산 예시 주석과 세번째항+네번째항을 새로운 다섯번째항에 넣음(변수를 b로 유지함-역시 반복에 쓰임)*/
sum=sum+b; /*다섯째 항까지 더함(8째항, 11째항, 14째항.... 더함)*/
}
else /*n 이 5, 8, 11.... 항이 아닐 때.*/
for(sum=a+b;i>=0;i--) /* for문 시작 i가 0일 때도 계산함, 합을 a+b로 지정*/
{c=a+b; /*첫항+둘째항*/
sum=sum+c; /*첫항+둘째항에 셋째항을 더함(6째항, 9째항, 12째항.... 더함) */
a=b+c; /*둘째항+셋째항*/
sum=sum+a; /*넷째 항까지 더함(7째항, 10째항, 13째항.... 더함)*/
b=c+a; /*셋째항+넷째항*/
sum=sum+b; /*다섯째 항까지 더함(8째항, 11째항, 14째항.... 더함)*/
}
if((n-1)%3==0) /*4, 7, 10... 항일 때,*/
printf("hang=%d sum= /*항 값과 합값 출력*/
else if(n%3==0) /*3, 6, 9... 항일 때,*/
printf("hang=%d sum= /*항 값과 합값 출력*/
else /*쓰진 않았지만, 5, 8, 11... 항일 때,*/
printf("hang=%d sum= /*항 값과 합값 출력*/
}
else if(n==1) /*1을 입력했을 때의 값*/
printf("hang=1 sum=1");
else if(n==2) /*2를 입력했을 때의 값*/
printf("hang=1 sum=2");
else /*음수를 입력했을 때의 값*/
printf("again for n<=0");
}
#include <stdio.h>
void main()
{
/*지정 항까지의 합을 구하도록 했습니다. if문과 for문을 썼습니다. */
/* long형 변환까지는 못 해서, 큰수를 입력하면, 엉뚱한 숫자가 나오게 됩니다. */
/* (sum은 21항 까지, hang은 23항까지) */
int a=1,b=1,c=0,n=0,i,m,sum=0; /*변수를 선언합니다*/
printf("n hahaha myut hang?"); /*몇 항을 묻습니다*/
scanf("%d",&n); /*숫자를 입력 받습니다*/
m=n-2; /*몇 번 반복할지 구하는 변수 m*/
i=m/3; /*몇 번 반복할지 구하는 변수 i*/
if (n>=3) /*항이 3보다 작은 수를 제외 하는 if문*/
{
if (m%3==0) /*n이 5, 8, 11 항일 때 구하는 if 문*/
for(sum=a+b;i>0;i--) /*for문 시작 i가 0일 때 제외, 합을 a+b로 지정*/
{c=a+b;/*2=1+1*/ /*첫번째 연산 예시 주석과 첫항+두번째항*/
sum=sum+c; /*첫항+둘째항에 셋째항을 더함(6째항, 9째항, 12째항.... 더함) */
a=b+c;/*3=1+2*/ /*두번째 연산 예시 주석과 두번째항+세번째항을 새로운 넷째항에 넣음(변수를 a로 유지했음-반복할 때 쓰이게 됨)*/
sum=sum+a; /*넷째 항까지 더함(7째항, 10째항, 13째항.... 더함)*/
b=c+a;/*5=2+3*/ /*세번재 연산 예시 주석과 세번째항+네번째항을 새로운 다섯번째항에 넣음(변수를 b로 유지함-역시 반복에 쓰임)*/
sum=sum+b; /*다섯째 항까지 더함(8째항, 11째항, 14째항.... 더함)*/
}
else /*n 이 5, 8, 11.... 항이 아닐 때.*/
for(sum=a+b;i>=0;i--) /* for문 시작 i가 0일 때도 계산함, 합을 a+b로 지정*/
{c=a+b; /*첫항+둘째항*/
sum=sum+c; /*첫항+둘째항에 셋째항을 더함(6째항, 9째항, 12째항.... 더함) */
a=b+c; /*둘째항+셋째항*/
sum=sum+a; /*넷째 항까지 더함(7째항, 10째항, 13째항.... 더함)*/
b=c+a; /*셋째항+넷째항*/
sum=sum+b; /*다섯째 항까지 더함(8째항, 11째항, 14째항.... 더함)*/
}
if((n-1)%3==0) /*4, 7, 10... 항일 때,*/
printf("hang=%d sum= /*항 값과 합값 출력*/
else if(n%3==0) /*3, 6, 9... 항일 때,*/
printf("hang=%d sum= /*항 값과 합값 출력*/
else /*쓰진 않았지만, 5, 8, 11... 항일 때,*/
printf("hang=%d sum= /*항 값과 합값 출력*/
}
else if(n==1) /*1을 입력했을 때의 값*/
printf("hang=1 sum=1");
else if(n==2) /*2를 입력했을 때의 값*/
printf("hang=1 sum=2");
else /*음수를 입력했을 때의 값*/
printf("again for n<=0");
}
댓글 달기