解释出这段代码?
Explain out of this code?
我是编程新手。我找不到输出的原因
0 1 1 2 3 5 8 13 21 34 55
不应该是0 1 1 3 5 7
等等吗?
第一,i=0
所以打印 0 (because return 0)
,第二 i=1
所以打印 1 (because return 1)
,第三 i=2
所以打印 1 because (2-1)+(2-2)=1
,第四 i=3
所以打印 3 because (3-1)+(3-2)=3
等..
请原谅我提出这个非常基本的问题。也许编程不适合我
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int i=12345;
double y=1.23456;
void display_variables()
{
double y=4.352;
printf("i=%d, y=%f\n", i,y);
}
int main()
{
printf("i=%d, y=%f\n", i,y);
display_variables();
int c,i=0;
for (c = 0; c <= MAX; c++)
{
printf("%d\n", fib(i));
i++;
}
return 0;
}
int fib(int n)
{
if ( n == 0 )
return 0;
else if ( n == 1 )
return 1;
else
return ( fib(n-1) + fib(n-2) );
}
看来,
fib(0) = 0,
fib(1) = 1,
fib(2) = fib(1) + fib(0) = 1,
fib(3) = fib(2) + fib(1)
= fib(1) + fib(0) + fib(1)
= 1 + 0 + 1
= 2
etc...
人都会犯错,尤其是新手,要有耐心,你会发现兴趣的
我是编程新手。我找不到输出的原因
0 1 1 2 3 5 8 13 21 34 55
不应该是0 1 1 3 5 7
等等吗?
第一,i=0
所以打印 0 (because return 0)
,第二 i=1
所以打印 1 (because return 1)
,第三 i=2
所以打印 1 because (2-1)+(2-2)=1
,第四 i=3
所以打印 3 because (3-1)+(3-2)=3
等..
请原谅我提出这个非常基本的问题。也许编程不适合我
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int i=12345;
double y=1.23456;
void display_variables()
{
double y=4.352;
printf("i=%d, y=%f\n", i,y);
}
int main()
{
printf("i=%d, y=%f\n", i,y);
display_variables();
int c,i=0;
for (c = 0; c <= MAX; c++)
{
printf("%d\n", fib(i));
i++;
}
return 0;
}
int fib(int n)
{
if ( n == 0 )
return 0;
else if ( n == 1 )
return 1;
else
return ( fib(n-1) + fib(n-2) );
}
看来,
fib(0) = 0,
fib(1) = 1,
fib(2) = fib(1) + fib(0) = 1,
fib(3) = fib(2) + fib(1)
= fib(1) + fib(0) + fib(1)
= 1 + 0 + 1
= 2
etc...
人都会犯错,尤其是新手,要有耐心,你会发现兴趣的