序:
本人今年参加研究生考试,为了练习所找到的历年真题,和方便重新学习,写此博客,具体的学校我就不提了,感兴趣的童鞋们可以联系我。好了,正式开始吧!
本系列操作试题总共分为四道题,每道题分为问题描述、问题思路和参考代码。希望大家能提出改进意见!
第一题:
1,问题描述
给你一个数n,使用递归求n!
2,问题思路
此题算是开胃小菜,解决的方式方法题目也都给出,需要整明白的就是①会求阶乘。如:3!= 3*2*1。依次类推,既得n!= n*(n-1)*(n-2)....*2*1。②了结递归。程序调用自身的编程技巧称为递归(recursion),一般来说,递归需要有边界条件(必须有,否则将会导致无限循环)、递归前进段和递归返回段。
3,参考代码
/*****************************
File name:recursion
Author:zhangsan Version:1.0 Date:2018/3/18
Description:对一个数字n递归求n!
*****************************/
#include "stdio.h"
/*****************************
*函数名: recursion_fun
*作用:求n!
*参数:n - 所求阶乘的值
*返回值:n!的结果
*****************************/
int recursion_fun(int n){
if(n == 0) return 0;
if(n == 1) return 1; //递归结束条件
else return n * recursion_fun( n-1 ); //自己调用自己
}
//主函数
int main(){
int n,res;
printf("请输入递归数字:");
scanf("%d",&n);
res = recursion_fun(n); //n!
printf("\n %d! = %d",n