实例211 用栈及递归计算多项式 - C源码程序 - 谷速源码
下载频道> 资源分类> 编程语言> C源码> 实例211 用栈及递归计算多项式

标题:实例211 用栈及递归计算多项式
分享到:

所属分类: C源码 资源类型:程序源码 文件大小: 2.28 KB 上传时间: 2017-07-15 22:41:38 下载次数: 8 资源积分:1分 提 供 者: admin 实例211 用栈及递归计算多项式
内容:
#include <stdio.h>
 
double f1(int n, int x) /*自定义函数f1,递归的方法*/
{
if (n == 0)
return 1; /*n为0时返回值为1*/
else if (n == 1)
return 2 *x; /*n为1时返回值为2与x的乘积*/
else
return 2 *x * f1(n - 1, x) - 2 *(n - 1) *f1(n - 2, x); /*当n大于2时递归求值*/
}
 
double f2(int n, int x) /*自定义函数f2,栈的方法*/
{
struct STACK
{
int num; /*num用来存放n值*/
double data; /*data存放不同n所对应的不同结果*/
} stack[100];
int i, top = 0; /*变量数据类型为基本整型*/
double sum1 = 1, sum2; /*多项式的结果为双精度型*/
sum2 = 2 * x; /*当n是1的时候结果是2*/
for (i = n; i >= 2; i--)
{
top++; /*栈顶指针上移*/
stack[top].num = i; /*i进栈*/
}
while (top > 0)
{
stack[top].data = 2 * x * sum2 - 2 *(stack[top].num - 1) *sum1; /*求出栈顶元素对应的函数值*/
sum1 = sum2; /*sum2赋给sum1*/
sum2 = stack[top].data; /*刚算出的函数值赋给sum2*/
top--; /*栈顶指针下移*/
}
return sum2; /*最终返回sum2的值*/
}
 
void main()
{
int x, n; /*定义x、n为基本整型*/
double sum1, sum2; /*sum1、sum2为双精度型*/
printf("请输入n:\n");
scanf("%d", &n); /*输入n值*/
printf("请输入x:\n");
scanf("%d", &x); /*输入x的值*/
sum1 = f1(n, x); /*调用f1,算出递归求多项式的值*/
sum2 = f2(n, x); /*调用f2,算出栈求多项式的值*/
printf("用递归算法得出的函数值是:%f\n", sum1); /*将递归方法算出的函数值输出*/
printf("用栈方法得出的函数值是:%f\n", sum2); /*将使用栈方法算出的函数值输出*/
}
 

文件列表(点击上边下载按钮,如果是垃圾文件请在下面评价差评或者投诉):

实例211 用栈及递归计算多项式
实例211 用栈及递归计算多项式\www.gusucode.com
实例211 用栈及递归计算多项式\文件说明.txt
实例211 用栈及递归计算多项式\www.gusucode.com.txt
实例211 用栈及递归计算多项式\www.gusucode.com\211.C
实例211 用栈及递归计算多项式\【谷速代码】-免费源码.url

关键词: 递归 多项式 实例

相关推荐

Top_arrow
回到顶部
联系方式| 版权声明| 招聘信息| 广告服务| 银行汇款| 法律顾问| 兼职技术| 付款方式| 关于我们|
网站客服网站客服 程序员兼职招聘 程序员兼职招聘
沪ICP备19040327号-3
公安备案号:沪公网安备 31011802003874号
库纳格流体控制系统(上海)有限公司 版权所有
Copyright © 1999-2014, GUSUCODE.COM, All Rights Reserved