2.5 生成乘方表和阶乘表

例2-10:输入一个正整数n,生成一张2的乘方表,输出2的0次方到2的n次方的值,可以调用幂函数计算2的乘方。

#include <stdio.h>
#include <math.h>
int main()
{
    int i, n;
    double power;

    printf("Enter n:");
    scanf("%d", &n);
    for (i = 0; i <= n; i++)
    {
        power = pow(2, i);
        printf("pow(2,%d)=%.0f\n", i, power);
    }
    return 0;
}

例2-11:输入一个正整数n,生成一张阶乘表,输出0!到n!的值,要求定义和调用函数fact(n)计算n!,函数类型是double。

#include <stdio.h>
double fact(int n);
double fact(int n)
{
    int i;
    double product;
    product=1;
    for(i=1;i<=n;i++)
    {
        product=product*i;
    }
    return product;
}
int main()
{
    int i,n;
    double result;
    printf("Enter n:");
    scanf("%d",&n);
    for(i=0;i<=n;i++)
    {
        result=fact(i);
        printf("%d!=%0.f\n",i,result);
    }
    return 0;
}

练习2-17:输入一个正整数n,生成一张3的乘方表,输出3的0次方到3的n次方的值,可以调用幂函数计算2的乘方,试编写相应程序。

#include <stdio.h>
#include <math.h>
int main()
{
    int i, n;
    double power;

    printf("Enter n:");
    scanf("%d", &n);
    for (i = 0; i <= n; i++)
    {
        power = pow(3, i);
        printf("pow(3,%d)=%.0f\n", i, power);
    }
    return 0;
}

练习2-18,求组合数:根据下列公式可以算出从n个不同元素中取出m个元素(m≤n)的组合数。输入两个正整数m和n(m≤n),计算并输出组合数,要求定义和调用函数fact(n)就算n!,函数类型是double。试编写相应程序。

#include <stdio.h>
double fact(int n); //声明自定义函数
double fact(int n)  //定义自定义函数
{
    int i;
    double product;          //使用product存放结果
    product = 1;             //设置初值为1
    for (i = 1; i <= n; i++) //计算n!
    {
        product = product * i;
    }
    return product;
}
int main()
{
    int n, m;
    double result1, result2, result3, C;
    printf("Enter n:"); //输入提示
    scanf("%d", &n);
    printf("Enter m:"); //输入提示
    scanf("%d", &m);
    if (m <= n) //判断n和m的大小
    {

        result1 = fact(n); //调用函数计算n!
        printf("n!=%0.f\n", result1);

        result2 = fact(m); //调用函数计算m!
        printf("m!=%0.f\n", result2);

        result3 = fact(n - m); //调用函数计算(n-m)!
        printf("(n-m)!=%0.f\n", result3);

        C = result1 / (result2 * result3); //计算C的值
        printf("C=%0.f", C);
    }
    else
    {
        printf("Invalid value");
    }
    return 0;
}
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值