C语言:输入两个正整数m和n(要求m〈=n)求m!+(m+1)!+……n! 谢啦

供稿:hz-xin.com     日期:2025-01-13
输入两个正整数m和n(要求m<=n), 求m!+(m+1)!+(m+2)!…+n!

#include
int main()
{int i,t,m,n,s=0;
scanf("%d%d",&m,&n);
for(t=1,i=2;i<m;i++)
t*=i;
for(i=m;i<=n;i++)
{t*=i;
s+=t;
}
printf("%d
",s);
return 0;
}

一、基本方法:
1、输入M和N;
2、遍历从M到N的所有整数;
3、每个累加;
4、输出结果。
参考代码:
#include int main(){ int M,N,n,s=0; scanf("%d%d",&M,&N);//输入 for(n = M; n <= N; n ++)//遍历 s+=n;//累加每个整数。 printf("%d
",s);//输出结果。 return 0;}二、利用等差数列求和公式。
从M到N的所有整数为等差数列,公差为1,所以可以利用求和公式直接获得结果。

#include int main(){ int M,N,n,s=0; scanf("%d%d",&M,&N);//输入 s=(M+N)*(N-M+1)/2;//等差数列求和。 printf("%d
",s);//输出结果。 return 0;}三、方法对比:
第一种适用于C语言练习,可以涉及更多知识点。
第二种方法效率更高,适用于实际应用。

#include "stdio.h"
main()
{
int m,n,i;
long int sum=1,sum1=1,sum2=1,t;
printf("请输入m>n\n");
scanf("%d",&m);
scanf("%d",&n);
while(m<n)
{
clrscr();
printf("请重新输入m,n\n");
scanf("%d",&m);
scanf("%d",&n);
}
for(i=1;i<=m;i++)
sum=sum*i;
for(i=1;i<=m-n;i++)
sum1=sum1*i;
for(i=1;i<=n;i++)
sum2=sum2*i;
t=sum/sum1*sum2;
printf("m!/(m-n)!*n!=%ld",t);

}

#include<stdio.h>

int aa(int a)
{
int sum=1,i=1;
for(;i<=a;i++)
sum*=i;
return sum;
}

void main()
{
int m,n,sum=0;
printf("请输入两个数:");
scanf("%d%d",&m,&n);

for(;m<=n;m++)
sum+=aa(m);

printf("%d到%d的阶乘和为:%d\n",m,n,sum);
}

int main(){
int m,n;
cin>>m>>nj;
if(m>n){cout<<"error";exit(0);}
int sum=0;
for(int i=m;i<=n,i++)
{
int temp=1;
for(int j=m;j>=1;j--)temp=temp*j;
sum=sum+temp;
}
cout<<sum;
return(0);
}

求c语言程序。输入两个正整数m和n,求其最大公约数和最小公倍数。
= 0) { m_cup = n_cup; n_cup = res; res = m_cup % n_cup; } printf("Greatest common divisor: %d\\n", n_cup); printf("Lease common multiple : %d\\n", m * n \/ n_cup); } else printf("Error!\\n"); return 0; }辗转相除法求最大公约数最小公倍数 = 两个数的...

C语言:从键盘输出两个正整数m和n(m<=n<=999)
void f(int m,int n){ int i;x,v,flag,count=0;for(i=m;i<=n;i++){ flag=0;x=i;while(x){ v=x%10;if(v==5){ flag=1;break;} x=x\/10;} if(i%3==0&&flag){ if(!count) printf("\\n");printf("%d\\t",i);count=++count%3;;} } } ...

.输入两个正整数m和n,求其最大公约数和最小公倍数。
include<stdio.h> void main(){ int m,n,max,min,i;printf("请输入两个数(逗号隔开):");scanf("%d,%d",&m,&n);if(m>n){ i=m;m=n;n=i;} for(i=m;i>0;i--){ if(m%i==0 && n%i==0){ max=i;min=m*n\/max;break;} } printf("这两个数的最大公约数是%d,最...

输入两个正整数m和n(m<n),求m到n之间(包括m和n)所有素数的和,要求定义...
在VS2010上测试通过:include <iostream> using namespace std;bool is_prime(int x){ int tmp = x\/2;for (int i = 2; i<=tmp; i++){ if (x%i == 0) return false;} return true;} int main(){ int m, n;int sum = 0;cout << "请输入两个正整数m,n(m<n):" << ...

用c语言编写程序,输入两个正整数m和n,计算m!+n!
include <stdio.h> void main(){ \/\/计算阶乘数的加和 float i,m,n,ji=1,sum=0,sum1=0,sum2=0;scanf("%f",&m);scanf("%f",&n);for(i=1;i<=m;i++){ ji*=i;sum1+=ji;} for(i=1;i<=n;i++){ ji*=i;sum2+=ji;} sum0=sum1+sum2;printf("阶乘的加和结果是...

编写程序,输入两个正整数m和n,输出m和n之间的素数并统计素数的个数...
2、在窗体上添加控件:lable控件,text值为“输入一个数,判断是否是素数”;一个textbox控件(tb_inputvalue),用来输入要判断的素数。3、素数设计算法。4、素数设计算法:取消检测区间,提高程序效率。我们可以只判断2到n\/2之间的数,就可以知道他是不是素数了。5、获取前100之间的所有素数:从2到...

C 语言 编程 输入2个正整数m和n(m>1,n<=500),统计并输出m和n之间的素 ...
int max = 0, min = 0;max = m > n? m:n;min = m> n?n:m;int i = 0,count = 0, sum = 0;for (i = min + 1; i < max; i++){ if (1 == prime(i)){ sum += i;count++;} } printf("count=%d,sum=%d\\n",count,sum);} int prime(int m){ if (2 ==...

输入两个正整数m和n,计算m!和n!.
include "stdafx.h"void main(){int m,n,jm=1,jn=1;printf("请输入数m:");scanf("%d",&m);printf("请输入数n:");scanf("%d",&n);printf("%d!=",m);for(int i=m;i>0;i--){if(jm==1)printf("%d",i);elseprintf("x%d",i);jm*=i;}printf("=%d\\n",...

c++语言、输入两个正整数m和n,求其最大公约数和最小公倍数。
include<stdio.h> int main(){ int a,b,t,r;printf("请输入两个数字:\\n");scanf("%d %d",&a,&b);if(a

用C语言编写程序:输入两个正整数m,n.求其最大公约数和最小公倍数
include "stdio.h"void main(){ int m,n,temp,a,b;printf("请输入2个正整数m和抄n:");scanf("%d%d",&m,&n);a=m;b=n;if(m<n){ temp="m;" m="n;" n="temp;" }="" if(0="=n){" printf("除数为0!\\n");="" return;="" while(temp!="0){" printf("最大...