伯努利装错信封问题c语言

伯努利-欧拉装错信封问题

马小虎在人人网上结交一批女网友,在情人节那天,马小虎玩起了浪漫,同时给n个女网友每人写了一封各有特色的信,要命的是,激动的他竟然把所有的信都装错了信封!编写一个程序,计算将所有的信都装错信封,共有多少种不同情况?例如,3封信全装错信封的种数为2,即231和312.  输入输入包含若干组数据。每组数据是一个整数N(1<=N <=30),表示马小虎写信的封数。N = 0 时输入结束。输出对于每组数据,在单独的一行输出一个整数(所有的信都装错信封的种数)。

伯努利-欧拉装错信封问题

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

#include

#include

#include

#define N 100

//套用递归计算

double digui(double);

int jiecheng(int);

int main()

{

int n[N], i;

printf("请输入信件数量( > 0, 输入0结束):\n");

scanf("%d", &n[0]);

for(i = 0; n[i] != 0; i ++)

{

n[i] = jiecheng(n[i]) * (1 + digui((double)n[i]));

scanf("%d", &n[i + 1]);

}

printf("完全装错信件的种数:\n");

for(i = 0; n[i] != 0; i ++)

{

printf("%d\n", n[i]);

}

return 0;

}

double digui(double n)

{

double x;

if(n > 0)

{

x = digui(n - 1);

//y = jiecheng(n);

//z = pow(-1, n);

n = x + pow(-1, n) / jiecheng(n);

}

return n;

}

int jiecheng(int n)

{

if(n > 1)

{

n = n * jiecheng(n - 1);

}

return n;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值