//第一次尝试:
#define
_CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> //递归方法求 int setFactor1(int num) { if (num == 1) { return 1; } else { return num * setFactor1(num - 1); } } //非递归方法求 int setfactor2(int num) { int value = 1; for (int i = 1; i <= num; i++) { value = value * i; } return value; } int main() { printf("输入要求阶乘的数:\n"); int num = 0; scanf("%d", &num); printf("递归方法求得: %d\n", setFactor1(num)); printf("非递归方法求得: %d\n", setfactor2(num)); return 0; }
//利用两种方法来求阶乘,递归和循环,递归的思想比较难理解,但是理顺了就非常简单,只要设定好结束条件,很容易就可以实现;循环是一种正常解法,比较好写。