用栈实现阶乘 |
您所在的位置:网站首页 › 如何用python算阶乘 › 用栈实现阶乘 |
实验内容: 从键盘读入若干个整数,建一个链式栈,并完成下列操作: (1)初始化栈; (2)判栈为空; (3)出栈; (4)入栈。
实验步骤: (1)定义结构体及栈链数据域的最大值 #include #define MAX 30 typedef struct stack{ int next; int data[20]; }Stack; Stack t;
(2)入栈 定义一个变量i,以及所输入要计算的n阶乘,在进行判断,如果输入的n比MAX大,则直接退出,不然执行下面的语句。写一个for循环,将1到n依次加1存入到栈中,最后再将输入的n输出到屏幕上。 int push(int i) { int n; scanf("%d", &n); if(n > MAX) return; for(i=2; i long l = 1; while(t.next > 0) { l *= t.data[--t.next]; } return l; }
(4)主函数 主函数用于栈链指针的初始化,以及应用入栈,出栈函数。 void main() { int n; long l = 1; t.next = 0; push(n); printf("%d \n", pop(l)); }
(5)代码入下 #include #define MAX 30
typedef struct stack{ int next; int data[20]; }Stack; Stack t;
int push(int i) { int n; scanf("%d", &n); if(n > MAX) return; for(i=2; i long l = 1; while(t.next > 0) { l *= t.data[--t.next]; } return l; } void main() { int n; long l = 1; t.next = 0; push(n); printf("%d \n", pop(l)); }
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |