下面程序定义栈类模板StackTemplate,创建栈对象存储斐波那契数列的前10项数值,并以后进先出的方式取出元素并输出,输出结果为:55 34 21 13 8 5 3 2 1 1。其中void push(const T& i)函数为添加元素、T pop()函数为取出栈顶元素,int fibonacci(int n)函数为计算斐波那契数列的第n项值。在计算斐波那契数列值、添加元素和取出元素的过程中要进行上溢(OverFlow)或者下溢(UnderFlow)的异常处理。请补充空白处的代码(每空1分)。 【样例输入】 无 【样例输出】 55 34 21 13 8 5 3 2 1 1 #include <iostream> #include <iomanip> #include <cstdlib> using namespace std; enum ERROR{UnderFlow,OverFlow}; template<typename T> class StackTemplate { enum { ssize = 100 }; T stack[ssize]; int top; public: StackTemplate() : top(0) {} void push(const T& i) { if (top >= ssize) ; stack[top++] = i; } T pop() { if ( ) throw UnderFlow; return ; } int size() const{ return top; } }; int fibonacci(int n); int main() { { is; for(int i = 0; i < 10; i++) is.push(fibonacci(i)); for(int k = 0; k < 10; k++) cout <<setw(5)<< is.pop(); } catch( ERROR e ) { switch( ) { case OverFlow: exit(0); case UnderFlow: exit(0); } } catch(...) { } return 0; } int fibonacci(int n) { int sz = 100; int i; static int f[sz]; if (n >= sz) ; f[0] = f[1] = 1; for(i = 0; i < sz; i++) if(f[i] == 0) break; while(i <= n) { = f[i-1] + f[i-2]; i++; } return ; }
时间: 2024-02-10 13:33:40 浏览: 43
if (top >= ssize)
throw OverFlow;
stack[top++] = i;
if (top <= 0)
throw UnderFlow;
return stack[--top];
switch (e) {
case OverFlow:
exit(0);
case UnderFlow:
exit(0);
}
f[sz-1] = 1;
for (i = sz-2; i >= 0; i--)
f[i] = f[i+1] + f[i+2];
return f[n];
相关问题
编程序求Fibonacci数列的前10项,并按每行3个数的格式输出该数列。Fibonacci数列的定义为:
以下是C语言编写的求Fibonacci数列前10项的程序,并按每行3个数的格式输出该数列:
```c
#include <stdio.h>
int main()
{
int n = 10, i;
int f1 = 1, f2 = 1, f3;
printf("%d %d ", f1, f2);
for (i = 3; i <= n; i++)
{
f3 = f1 + f2;
printf("%d ", f3);
if (i % 3 == 0) // 控制每行输出3个数
printf("\n");
f1 = f2;
f2 = f3;
}
return 0;
}
```
输出结果为:
```
1 1 2
3 5 8
13 21 34
55 89
```
Fibonacci数列的定义为:数列的第一项值为1,第二项值也为1,从第三项开始,每一项均为其前面相邻两项的和。
java 数组创建应用程序,计算 Fibonacci 数列的前十项(存储在数组中),并输出。
好的,以下是计算 Fibonacci 数列前十项并存储在数组中的 Java 代码:
```
public class FibonacciArray {
public static void main(String[] args) {
int n = 10;
int[] fib = new int[n];
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
for (int i = 0; i < n; i++) {
System.out.print(fib[i] + " ");
}
}
}
```
输出结果为:0 1 1 2 3 5 8 13 21 34
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)