Below condition is Fibonacci sequence.
Fibonacci sequence start from 0, 1 and then next number is sum of previous two Fibonacci value.
ex) 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946...
Make Fibonacci function~
ex) F(0) = 0, F(1)=1, F(7)=13
----------------------------------------------------
피보나치 수는 0과 1로 시작하며, 다음 피보나치 수는 바로 앞의 두 피보나치 수의 합이 된다.
ex) 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946...
피보나치 함수를 만들어라
ex) F(0) = 0, F(1)=1, F(7)=13
JeKang's Code :
ReplyDelete#include
void main()
{
int Rst[3]={0,1,1};
int Num=0;
int Temp=0;
printf("숫자를 입력하세요. -> ");
scanf("%d", &Num);
if(Num==0) Rst[2]=0;
else{
for(int i=2;i<Num;i++){
Temp=Rst[2];
Rst[2]=Rst[1]+Temp;
Rst[0]=Rst[1];
Rst[1]=Temp;
}
}
printf("결과값은 %d 입니다.\n",Rst[2]);
}
민현규
ReplyDelete#include
int a,b,c;
void fun(int i);
void main()
{
int i;
scanf("%d",&i);
fun(i);
}
void fun(int i)
{
a=0;
b=1;
if(i==0)
printf("0");
else if(i==1)
printf("1");
else
{
while(i-1>0)
{
c=a+b;
a=b;
b=c;
i--;
}
printf("%d ",c);
}
}
int Fibonacc(int C);
ReplyDeletevoid main()
{
for(int i=0; i<45; ++i)
printf("f(%d) = %d\n",i, Fibonacc(i));
}
int Fibonacc(int C){
if(C<0)
{
printf("Input Error\n");
return -1;
}else if(C<2)
{
return C;
}
int P0=0;
int P1=1;
int P2=0;
for(int i=2; i<=C; ++i)
{
P0 = P1+P2;
P2=P1;
P1=P0;
}
return P0;
}
제강아 잘했다. 그런데 피보나치 부분을 함수로 안만들어서 99.9점이다. Good Job~!!
ReplyDelete현규도 잘했다~. 장난 아닌데? 더 어려운거 내야 겠다. ㅎㅎ
ReplyDelete그런데 함수에서 결과값을 print하지 말고 return 하도록 해라. 그러면 이제 이 피보나치 함수를 이용하여 원하는 입력에 대한 결과 값을 받아 쓸 수 있거든.
그리고 전역 변수는 그러니깐 너 소스에서 int a,b,c, 전역 변수는 누군가의 실수에 의해서 값이 쉽게 바뀔수 있기 때문에 웬만하면 전역은 쓰지 않는게 좋다.
수고 했다~ Good Job!!!
행님코드 참고해서 피보나치부분 함수로 다시 만들었어요.
ReplyDelete앞으로는 함수로 만드는 습관을 좀 길러야 될거 같아요ㅋㅋ
#include
int fibo(int Num);
void main()
{
int Num=0;
printf("숫자를 입력하세요. -> ");
scanf("%d", &Num);
printf("결과값은 %d 입니다.\n",fibo(Num));
}
int fibo(int Num)
{
int Rst[3]={0,1,1};
int Temp=0;
if(Num==0) return 0;
else{
for(int i=2;i<Num;i++){
Temp=Rst[2];
Rst[2]=Rst[1]+Temp;
Rst[0]=Rst[1];
Rst[1]=Temp;
}
return Rst[2];
}
}
제강 잘한다~ ^^
ReplyDelete