【发布时间】:2012-02-15 03:07:33
【问题描述】:
我被要求这样做:
Please input Number: 4
+-+-+-+
+
+
+-+
+
Total is 5
其他例子”
Please input Number: 5
+-+-+-+-+
+
+
+-+
+
+
+-+-+
+
+
total is 8
虽然这个问题让我发疯。我一直在编码和研究斐波那契的工作原理,同时找出模式。
我想出的最好的代码是这样的:
#include <stdio.h>
#include <conio.h>
int fibo(int condition)
{
if(condition <= 2)
{
return printf("+");
}
else
{
printf("+");
printf("-");
printf("\n");
fibo(condition - 2) + fibo(condition - 1);
}
}
int main()
{
int takeNumber;
printf("Please give a number!\n");
scanf("%d",&takeNumber);
fibo(takeNumber);
getch();
}
他对“唯一递归规则”非常严格
我感到困惑和沮丧,我不知道我是否应该将“+”、“-”和“prinf("\n");”分开。我试过了,堆栈溢出错误。
学习模式很难,有人可以帮帮我吗?
【问题讨论】:
-
这段代码甚至无法编译!你写的真实代码是什么?
-
一方面,不要返回
printf("+"),而是返回printf并返回斐波那契数。其次,确保用大括号({和})将printf括在else 中。此外,您没有返回您应该返回的fibo(c-2)+fibo(c-1)的结果。 -
这是我的代码,可以在我的电脑上运行。
-
最后,你能解释一下输出到底是什么吗?我的意思是带有 4、1、1、2 和 1 加号的线条对我来说似乎不像 fubonacci!
-
伙计们,你有没有注意到输出看起来像一个分形“F”?
标签: c recursion variable-assignment fibonacci