7-3 sdut-C语言实验-简单递归函数
分数 20
全屏浏览
切换布局
作者 马新娟
单位 山东理工大学
递归函数其实是一种特使的嵌套调用函数,特殊的地方是函数调用了自己,而且可以多层调用。
下面的函数就是一个简单的递归函数调用。
F(m, n)的定义是:
若m=0,返回n+1。
若m>0且n=0,返回F(m-1,1)。
若m>0且n>0,返回F(m-1,F(m,n-1))。
给出 m 和 n,计算 F(m, n) 的值。
###输入格式:
第一行输入一个整数 t, 代表有 t 组数据。(1 <= t <= 15)
每组数据输入一行,包含两个非负整数 m,n。(0 <= m <= 3, 0 <= n <= 10)
###输出格式:
每组数据输出一行,为 F(m, n) 的答案。
###输入样例:
1. 3 2. 3 2 3. 3 10 4. 2 1
###输出样例:
1. 29 2. 8189 3. 5
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include<stdio.h> #include<stdlib.h> int f(int m, int n){ int y; if(m == 0) y = n + 1; else if(m > 0 && n == 0) y = f(m - 1, 1); else if(m > 0 && n > 0) y = f(m - 1, f(m, n - 1)); return y; } int main() { int t; scanf("%d", &t); while(t--){ int m, n; scanf("%d%d", &m, &n); printf("%d\n", f(m, n)); }//max return 0; }