学完C语言了,在写作业的时候,发现我写的代码用for循环和用递归打印出来的结果不一致啊! 求帮忙,求解答!- /*
- 提示用户输入一个正整数n,求出并输出下列结果:1! + 2! + 3! + 4! + ... + n!
- 要求:用至少两种方式实现(函数名自拟,函数个数不限)
- 1> 非递归
- 2> 递归
- */
- #include <stdio.h>
- //int digui(int n);
- int feidigui(int n);
- int main()
- {
- int n = 0;
-
- while(n <= 0)
- { //提示用户输入一个正整数
- printf("请输入一个正整数:\n");
- //接收用户输入的值
- scanf("%d", &n);
- }
-
- //int c = digui(n);
- int c = feidigui(n);
-
- printf ("%d\n", c);
-
-
- return 0;
- }
- int feidigui(int n)
- {
- int max = 0;
-
- for(int i = 1;i <= n; i++)
- {
- int ji = 1;
- for (int j = 1; j <= i; j++)
- {
- ji *= j;
- }
- max += ji;
- }
-
- return max;
- }
- /*
- int digui(int n)
- {
- if ( n == 1) return 1;
-
- return digui(n - 1) * n;
- }*/
复制代码 |