C语言——二项式定理

本来已经到C++了,但是有一个小学弟问我这个问题,一点都不难,但是很绕,想了一会把它做出来给大家看看,嘿,献丑了

题目:用户输入二项式定理中第一个数值、第二个数值,以及幂次。最后打印出展开式和二项式

这个题主要是数学公式转换成代码,稍微不留神可能会出错,主要是很绕(刚开始给绕进去了,丢人了)
不多说,看代码看代码

代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
//这个函数是求第k项的系数
int coe(int n, int k){
    if (k == 0 || n == k )
        return 1;
    int num1=1, num2=1;
    for (int i = 0; i < k; i++)
        num1 = num1*(n-i);
    for (int i = 1; i <= k; i++)
        num2 = num2*i;
    return (num1 / num2);
}
//这个函数打印展开后的公式以及结果
void showMuli(int x, int y, int n){
    printf("(%d + %d)^%d = ", x, y, n);
    double sum = 0;
    for (int i = 0; i <= n; i++){
        if (i == 0)
            printf("%d^%d + ", x ,n-i);
        else if (i == n)
            printf("%d^%d = ",  y, i);
        else 
        printf("%d*%d^%d*%d^%d + ", coe(n, i), x, n - i, y, i);
    }
    sum = pow((double)(x+y), (double)n);
    printf(" %d \n", (int)sum);
}

int main(){   
    int x, y, n;
    printf("请输入第一个数: ");
    scanf("%d", &x);
    printf("请输入第二个数: ");
    scanf("%d", &y);
    printf("请输入二项式的幂次: ");
    scanf("%d", &n);
    showMuli(x, y, n);
    system("pause");
    return 0;
}

结果如下:

C语言——二项式定理_第1张图片

你可能感兴趣的:(C语言—日记)