阶乘:
5!=5*4*3*2*1
用c来描述就是 n*(n-1)*(n-2)…
故我们可以使用大事化小的递归来解决
#includeint digui(int n) { //接收传过来的值 if (n < 2) //当n<2时返回1 return 1; else return n*digui(n - 1); //递归调用,即n*(n-1)*(n-2)...(n-(n-1)) } int main() { int input = 0; scanf("%d", &input); //输入一个数 printf("%d ", digui(input)); //调用函数并输出 return 0; }
阶乘之和:输入5=5!+4!+3!+2!+1!
#includeint digui(int n) { //接收传过来的值 if (n < 2) //当n<2时返回1 return 1; else return n*digui(n - 1); //递归调用,即n*(n-1)*(n-2)...(n-(n-1)) } int main() { int input = 0,sum=0,i; //input接收输入的数,sum求和,i循环 scanf("%d", &input); //输入一个数 for (i = input; i > 0; i--) { sum+= digui(i); } printf("sum=%d ", sum); return 0; }



