本题主要考察二项定理以及循环和递归。
因为c语言不能直接求次方,关键在于编写输出二项式的系数的函数
先注意输出格式:1.以Ax^B+为一个整体输出最后一项不用加+;
2.一次项无次方,最后只有常数项,所以分开三个部分用if语句输出。
然后通过将系数展开发现要求阶乘(有次数限制的阶乘和平方);
编写求阶乘的函数,平方可以用C语言的库函数。
3.结构化编写:
#include<stdio.h>
#include <math.h>//包含平方的函数
int B(j, k)//求阶乘,平方也可以看作特殊的阶乘
{
if (j > 1)
return j * B(j - 1);
else
return 1;
}
int main()
{
int a = 0;
int b = 0;
int k = 0;
int j = 0;
scanf("%d%d%d", &a, &b, &k);
for (j = 0; j <= k; j++)
{
if (j < k - 1)
{
int d = (int)(A(j, k) * pow(a, k - j) * pow(b, j) / B(j, k));//系数
printf("%dx^%d+", d, k - j);
}
else if(j==k-1)//一次项
{
int d = (int)(A(j, k) * pow(a, k - j) * pow(b, j) / B(j, k));
printf("%dx+", d);
}
else //常数项
{
printf("%d", (int)pow(b, k));//用库函数偷懒
}
}
return 0;
}