#include<stdio.h>
// 循环法求阶乘
int sum1(n) {
int sum = 1;
for (int i = 1; i <= n; i++) {
sum = sum*i;
}
return sum;
}
// 递归法求阶乘
int sum2(n) {
int sum=0;
if (n == 1) sum=1;
else sum = sum2(n - 1)*n;
return sum;
}
void Menu() {
printf_s("1 用循环法求阶乘\n");
printf_s("2 用递归法求阶乘\n");
printf_s("3 退出\n");
}
void main() {
int sum = 1;
int n,c;
printf_s("输入要求的阶乘 n :");
scanf_s("%d", &n);
Menu();
while (1) {
printf_s("\n输入菜单: ");
scanf_s("%d", &c);
switch (c) {
case 1:
sum = sum1(n);
printf_s("sum1 = %d", sum);
break;
case 2:
sum = sum2(n);
printf_s("sum2 = %d", sum);
break;
case 3:
break;
default:
break;
}
if (c == 3) break;
}
system("pause");
}