您的位置:首页 > 其它

求任意开始数字到结束数字阶乘之和(1!+2!+3!+...10!)

2011-11-22 21:23 489 查看
/*
求任意数字开始数字到结束数字的阶乘之和 例如 11+2!+3!+4!+...+10!

*/
#include<stdio.h>
void main()
{

int number=0;
int x=0;

//声明调用的方法
void jiecheng(int begin,int end,long t);
printf("plearse input begin number:\n");
scanf("%d",&x);
printf("plearse input end number:\n");
scanf("%d",&number);
if(x>number)
{
printf("end number can't big begin number\n");
}
else
{

//最后的结果可能会很大,因此采用长整形
jiecheng(x,number,(long)number);
}
getche();
}

/* 阶乘之和(递归方法)
* int begin 起始数字
* int end    结束数字
* long t     保存每次的结果
*  无返回值
*/
void jiecheng(int begin,int end,long t)
{
long result=0;
if(end ==begin)
{
//注意:数字过大必须用长整形,输出的时候占位符就需要用“%ld”格式输出,短整型用"%hd"格式
printf("jiecheng's result=%ld",t);

}
else
{
result=(end-1) * (1+t);
jiecheng(begin,end-1,result);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐