c语言编程 输入m,n,求m,n之间的阶乘和m!+(m+1)!+...+n! 要先判断m,n的大小
3个回答
展开全部
// 此代码编译成功, 运行也正确.
int GetFactorial( int i ) //得到 m!
{
if( i == 1 ){
return i;
}
return i * GetFactorial(i-1);
}
int GetSum( int min, int max) // 得到 m! + (m+1)! + (m+2)!+ .... n!
{
if( min == max ){
return GetFactorial( min );;
}
int sum = GetFactorial( min );
printf( "min = %d, max = %d, sum = [%d] ", min, max, sum );
return sum + GetSum( min +1, max );
}
int main(int argc, char **argv )
{
int m = 0; int n = 0;
int FactorialSum = 0;
printf(" input :m\n" );
scanf("%d", &m);
getchar();
printf(" input :n\n" );
scanf("%d", &n);
getchar();
if( m <= 0 || n <= 0 ){
printf(" error, m = %d, n = %d", m, n );
return -1;
}
if( m > n ){ // exchage; // 交换 m 为最小的.
m=m^n;
n=m^n;
m=m^n;
}
FactorialSum = GetSum (m, n);
printf(" FactorialSum = %d", FactorialSum );
return 0;
}
int GetFactorial( int i ) //得到 m!
{
if( i == 1 ){
return i;
}
return i * GetFactorial(i-1);
}
int GetSum( int min, int max) // 得到 m! + (m+1)! + (m+2)!+ .... n!
{
if( min == max ){
return GetFactorial( min );;
}
int sum = GetFactorial( min );
printf( "min = %d, max = %d, sum = [%d] ", min, max, sum );
return sum + GetSum( min +1, max );
}
int main(int argc, char **argv )
{
int m = 0; int n = 0;
int FactorialSum = 0;
printf(" input :m\n" );
scanf("%d", &m);
getchar();
printf(" input :n\n" );
scanf("%d", &n);
getchar();
if( m <= 0 || n <= 0 ){
printf(" error, m = %d, n = %d", m, n );
return -1;
}
if( m > n ){ // exchage; // 交换 m 为最小的.
m=m^n;
n=m^n;
m=m^n;
}
FactorialSum = GetSum (m, n);
printf(" FactorialSum = %d", FactorialSum );
return 0;
}
展开全部
#include"iostream"
#include"math.h"
using namespace std;
int N(int x) // 求阶乘
{
long int i;
for(i=x-1;i>=1;i--)
x=x*i;
return x;
}
int main()
{
long int t,n,m;
long int l,X=0;
int N(int);
cout<<"shuru m,n:"<<endl;
cin>>m;
cin>>n;
if(m>n) //交换 m ,n
{
t=n;n=m;m=t;
}
for(l=m;l<=n;l++)
{
X=X+N(l);
}
cout<<X<<endl;
return 0;
}
#include"math.h"
using namespace std;
int N(int x) // 求阶乘
{
long int i;
for(i=x-1;i>=1;i--)
x=x*i;
return x;
}
int main()
{
long int t,n,m;
long int l,X=0;
int N(int);
cout<<"shuru m,n:"<<endl;
cin>>m;
cin>>n;
if(m>n) //交换 m ,n
{
t=n;n=m;m=t;
}
for(l=m;l<=n;l++)
{
X=X+N(l);
}
cout<<X<<endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
嗯,不好意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询