使用C语言编写程序求取1-2!+3!-4!+5!-6!...+15! 的和,并打印最终结果。
#include<stdio.h>int jiecheng(int n)
{
if (n == 0)
{
return 1;
}
else
{
return n * jiecheng(n - 1);
}
}
int sum(int n)
{
int i,s;
s = 0;
for (i = 1; i <=n; i++)
{
if (i % 2 == 1)
{
s = s + jiecheng(i);
}
else
{
s = s - jiecheng(i);
}
}
return s;
}
int main()
{
int n = 15;
printf("%d", sum(n));
return 0;
}
错哪了? 本帖最后由 wp231957 于 2021-6-1 15:44 编辑
阶乘那个明显不对
我觉得不用递归更简单一些
#include<stdio.h>
long longjiecheng(int n)
{
long longt=1;
for(int k=1;k<=n;k++)
{
t*=k;
}
return t;
}
long longsum(int n)
{
long long s = 0;
int j=1;
for (int i = 1; i <=n; i++)
{
s+=jiecheng(i)*j;
j*=-1;
}
return s;
}
int main()
{
int n = 15;
printf("%lld\n", sum(n));
return 0;
}
能解释一下,jiecheng那个高数的意思吗?新鱼油问 不是高数是函数 long
factorial( int n){
int result = 1;
while( n>1 ){
result *=n;
n -=1;
}
return result;
}
简单循环
long
factorial( int n){
if( n<=0)
return 1;
else returnn*factorial(n-1) ; //n不等于0 则一直进入函数
}
//递归 ,尾部递归可以转换为简单循环
如传进去5 return5*f(4) ,一直调用自己直到逼近某一 条件
程序没有错,只是S=15的时候数据溢出了。 wp231957 发表于 2021-6-1 12:18
阶乘那个明显不对
我觉得不用递归更简单一些
谢谢解答 最强废铁h 发表于 2021-6-1 14:28
能解释一下,jiecheng那个高数的意思吗?新鱼油问
那个就是不想用factorial 万千只cnm 发表于 2021-6-1 16:33
简单循环
感谢 Tiz 发表于 2021-6-3 20:03
感谢
能给个最佳嘛{:5_102:} 万千只cnm 发表于 2021-6-1 16:39
//递归 ,尾部递归可以转换为简单循环
如传进去5 return5*f(4) ,一直调用自己直到逼近某一 条件 ...
感谢大佬 longzhanyuye 发表于 2021-6-1 19:40
程序没有错,只是S=15的时候数据溢出了。
谢谢 我再看看{:10_266:} wp231957 发表于 2021-6-1 12:18
阶乘那个明显不对
我觉得不用递归更简单一些
感谢大佬的解答 Tiz 发表于 2021-6-3 20:03
那个就是不想用factorial
我是想问阶乘这个定义函数是什么意思 最强废铁h 发表于 2021-6-3 20:16
我是想问阶乘这个定义函数是什么意思
这个你还是去求助大佬吧我水平暂时还无法回答{:10_266:}
页:
[1]