L1-084 拯救外星人 分数 10
作者 陈越
单位 浙江大学
题目:
你的外星人朋友不认得地球上的加减乘除符号,但是会算阶乘 —— 正整数 N 的阶乘记为 “N!”,是从 1 到 N 的连乘积。所以当他不知道“5+7”等于多少时,如果你告诉他等于“12!”,他就写出了“479001600”这个答案。
本题就请你写程序模仿外星人的行为。
输入格式:
输入在一行中给出两个正整数 A 和 B。
输出格式:
在一行中输出 (A+B) 的阶乘。题目保证 (A+B) 的值小于 12。
输入样例:
3 6
输出样例:
362880
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
题解:
求阶乘,我们应该很熟练了,下面给出两种方法。
代码一(循环):
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, sum = 1;
cin >> a >> b;
for (int i = 1; i <= a + b; i++) sum *= i;
cout << sum;
return 0;
}
代码二(递归):
#include <bits/stdc++.h>
using namespace std;
int func(int n) {
if (n == 0 || n == 1) return 1;
else return n * func(n-1);
}
int main() {
int a, b;
cin >> a >> b;
cout << func(a + b);
return 0;
}