C++语言设计:定义一个求阶乘的函数,然后计算1!-2!+3!-4!+5!-6!+7!-8!+9!.

 我来答
百度网友6fe74e2
2013-04-26 · TA获得超过6593个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:268万
展开全部

#include "iostream"

using namespace std;

int fun(int n)

{

    int sum=1;

    int i;

    for(i=1;i<=n;i++)

           sum*=i;

     return sum;

}

 

int main()

{

       int i,mark=1;

       int sum=0,item=0;

       for(i=1;i<=9;i++)

       {

            item=mark*fun(i);

            sum+=item;

            mark=-mark;

       }

       cout<<"1!-2!+3!-4!+5!-6!+7!-8!+9!="<<sum<<endl;

 

}

神木鱼1
2013-04-26 · TA获得超过396个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:177万
展开全部
#include "stdio.h"

// 采用查表法。因为阶乘的效率实在太低,所以把n!的结果都记录在list的数组里,用空间
// 换取时间。在阶乘计算函数factorial里,需要输入数组list及其长度listn
// 这里追求速度,所以使用了int 作为数据类型,如果需要更大的计算,可以改成double
// 阶乘数组的长度也可以改得更高。(这里只取了20)
int factorial (int n, int * list, int & listn) // n是输入数据,list和listn是查表数组及其长度
{
while (listn < n) // 输入数据在表格之外,进入循环,否则直接输出查表结果

{

listn ++; // 从表格中计算下一级阶乘的数值,长度加一

list [listn] = list [listn-1] * listn; // 根据阶乘公式计算,直到计算出输入数据的阶乘数值
}

return list [n];

}

void main(void)
{
int list [20]; // 阶乘表,设置长度为20,根据需要修改。
int listn = 0;
list [0] = 1; // 阶乘表第一个元素0!=1

int s = 0;
for(i=1;i<=9;i++)
{

if (i%2) // 奇偶判断,奇数为真,偶数为假

s += factorial (i, list, listn);

else

s -= factorial (i, list, listn);

}

printf("1!-2!+3!-4!+5!-6!+7!-8!+9!=%d\n",s);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
委萌9D
2013-04-26 · TA获得超过875个赞
知道小有建树答主
回答量:407
采纳率:50%
帮助的人:369万
展开全部
#include<iostream>
using namespace std;
int factorial(int n)
{
int i=2,k=1;
while(i<=n)
{
k=k*i;
i++;
}
return k;
}
int main()
{
int j=0,k=1;
for(int i=1;i<=9;i++)
{
j=j+factorial(i)*k;
k=k*(-1);
}
cout<<"the result is"<<endl;
cout<<j<<endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式