用c语言写出输入两个正整数m和n,计算m!+n!的程序
时间: 2024-05-16 09:11:51 浏览: 164
可以使用以下代码实现:
```
#include <stdio.h>
int main() {
int m, n, i;
long long factorial_m = 1, factorial_n = 1;
printf("请输入m和n:");
scanf("%d %d", &m, &n);
for (i = 1; i <= m; i++) {
factorial_m *= i;
}
for (i = 1; i <= n; i++) {
factorial_n *= i;
}
printf("%d! %d! = %lld\n", m, n, factorial_m * factorial_n);
return 0;
}
```
当然,您也可以使用递归方式计算阶乘。
相关问题
用c语言写出输入两个正整数m和n,求其最大公约数和最小公倍数
```
#include <stdio.h>
int main()
{
int m, n, i, gcd, lcm;
printf("请输入两个正整数m和n:");
scanf("%d%d", &m, &n);
// 求最大公约数
for(i = 1; i <= m && i <= n; i++)
{
if(m % i == 0 && n % i == 0)
{
gcd = i;
}
}
// 求最小公倍数
lcm = m * n / gcd;
printf("最大公约数为:%d\n", gcd);
printf("最小公倍数为:%d\n", lcm);
return 0;
}
```
用c语言写出输入两个正整数m和n(m≥1,n≤1000),输出m到n之间所有的水仙花数。(水仙花数是指各位数字的立方和等于其自身的数)的程序
、n均小于等于100),输出它们的最大公约数和最小公倍数。可以回答该问题。以下是参考代码:
```
#include<stdio.h>
int main(){
int m, n, i, max, min, tmp;
scanf("%d%d", &m, &n);
if(m <= 0 || n <= 0){
printf("输入的数必须为正整数!\n");
}
else{
max = m > n ? m : n;
min = m < n ? m : n;
for(i = 1; i <= min; i++){
if(max % i == 0 && min % i == 0){
tmp = i;
}
}
printf("最大公约数为%d\n", tmp);
printf("最小公倍数为%d\n", m * n / tmp);
}
return 0;
}
```
希望能够帮到你!
阅读全文