问题描述:一个简单的计算,你需要计算f(m,n),其定义如下: 当m=1时,f(m,n)=n; 当n=1时,f(m,n)=m; 当m>1,n>1时,f(m,n)= f(m-1,n)+ f(m,n-1)
作者:何知令
发表时间:2017年2月22日
输入:第一行包含一个整数T(1<=T<=100),表示下面的数据组数。 以下T行,其中每组数据有两个整数m,n(1<=m,n<=2000),中间用空格隔开。
作者:何知令
发表时间:2017年2月22日
输入:第一行包含一个整数T(1<=T<=100),表示下面的数据组数。 以下T行,其中每组数据有两个整数m,n(1<=m,n<=2000),中间用空格隔开。
输出;对每组输入数据,你需要计算出f(m,n),并输出。每个结果占一行。
代码:
/*
问题描述:一个简单的计算,你需要计算f(m,n),其定义如下: 当m=1时,f(m,n)=n; 当n=1时,f(m,n)=m; 当m>1,n>1时,f(m,n)= f(m-1,n)+ f(m,n-1)
作者:何知令
发表时间:2017年2月22日
输入:第一行包含一个整数T(1<=T<=100),表示下面的数据组数。 以下T行,其中每组数据有两个整数m,n(1<=m,n<=2000),中间用空格隔开。
输出;对每组输入数据,你需要计算出f(m,n),并输出。每个结果占一行。
*/
#include <stdio.h>
#include <stdlib.h>
int f(int m,int n)
{
if(m==1)
return n;
else if(n==1)
return m;
else
return f(m-1,n)+f(m,n-1);
}
int main()
{
int i;
int m,n;
int time;
scanf("%d",&time);
for(i=0;i<time;i++)
{
scanf("%d %d",&m,&n);
printf("%d\n",f(m,n));
}
return 0;
}
程序运行结果展示:
知识点总结:函数,递归
学习心得:只要有公式,这种题一般做的出来