|
发表于 2017-10-10 20:02:05
|
显示全部楼层
本楼为最佳答案
这个其实实现不难,主要是算法,二项式展开式的公式你要知道,然后系数的求法你要知道,之后用C语言实现就可以了,下面是程序代码:
- //求二项式展开式的系数
- //公式:C(n,r)* C^r
- #include<stdio.h>
- #include<math.h>
- int zuhe(int n, int r);
- int jiecheng(int integer);
- int main()
- {
- int c, n, r = 0;//c:常数,可根据需要改成对应的数据类型,n为指数,r为所求项索引
- int xishu;//x系数
- printf("求(x + c)的n次方的展开式的系数!\n请输入c和n的值(此处应用空格隔开):\n");
- scanf("%d %d", &c, &n);
- for(r = 0; r < (n + 1); r++)
- {
- xishu = zuhe(n, r) * pow(c, r);
- printf("%d ", xishu);
- }
- printf("\n");
- return 0;
- }
- int zuhe(int n, int r)//求系数中C(n, r)的值,即组合
- {
- int zh;
- zh = (jiecheng(n) / jiecheng(n-r)) / (jiecheng(r));
- return zh;
- }
- int jiecheng(int integer) //求阶乘的函数
- {
- int i = 1;
- int jc= 1;
- while (i <= integer)
- {
- jc = jc * i;
- i++;
- }
- return jc;
- }
复制代码
|
|