计算题

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

一个简单的计算,你需要计算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)

Input

第一行包含一个整数T(1<=T<=100),表示下面的数据组数。

以下T行,其中每组数据有两个整数m,n(1<=m,n<=2000),中间用空格隔开。

Output

对每组输入数据,你需要计算出f(m,n),并输出。每个结果占一行。

Sample Input

2

1 1

2 3

Sample Output

1

7

m,n数据有点大,直接用类可能会超时,但是后台数据有点弱,所以可以过。(其实输入100,100就会超时)

import java.util.*;

public class Main {

	public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int a,b,t;
t = cin.nextInt();
while(t-->0)
{
a = cin.nextInt();
b = cin.nextInt();
System.out.println(f(a,b));
}
cin.close();
}
public static int f(int m,int n)
{
if(m==1)
return n;
if(n==1)
return m;
return f(m-1,n) + f(m,n-1);
}
}

所以用数组存储的方式来做。

结果发现了一个特别坑的问题,计算结果哪怕开long也会爆……

iimport java.util.*;

public class Main {

	public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int a,b,t,i,j;
long f[][] = new long [2050][2050];
for(j=0;j<=2000;j++)
f[1][j] = j;
for(i=0;i<=2000;i++)
f[i][1] = i;
for(i=2;i<=2000;i++)
for(j=2;j<=2000;j++)
f[i][j] = f[i-1][j] + f[i][j-1];
t = cin.nextInt();
while(t-->0)
{
a = cin.nextInt();
b = cin.nextInt();
System.out.println(f[a][b]);
}
cin.close();
}
}

最新文章

  1. doT js 模板引擎【初探】要优雅不要污
  2. 2016年中国大学生程序设计竞赛(合肥)-重现赛1001 HDU 5961
  3. PHP-权限控制类
  4. 最长公共上升子序列(codevs 2185)
  5. Spring-----&gt;projects-----&gt;Spring Security
  6. python学习笔记 - 初识socket
  7. VI设置及用法
  8. 圆角button
  9. JS模板引擎 :ArtTemplate (2)
  10. C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现
  11. gearman with postgresql as persistent Queuing
  12. You-Get , A Tiny Downloader,视频下载小工具
  13. git pull冲突:commit your changes or stash them before you can merge.
  14. iOS实现微信外部H5支付完成后返回原APP
  15. Delphi IfThen语句
  16. springboot 常用配置文件
  17. Nginx Windows版的服务安装和管理工具
  18. SharePoint 2007 页面及用户控件
  19. Java之旅--定时任务(Timer、Quartz、Spring、LinuxCron)
  20. Ubuntu 突然上不去网了怎么办

热门文章

  1. TZ_05_Spring_基于AOP的xml配置
  2. webstorm格式化代码快捷键
  3. MySQL中一条更新语句是如何执行的
  4. 查漏补缺&amp;#183;补丁计划
  5. day18 15.自定义连接池
  6. go strcut 封装
  7. Android——内存管理基础
  8. vs code 配置c/c++环境
  9. 阿里云SaaS生态战略发布,用宜搭5分钟部署OCR文字识别
  10. ie6中兼容性问题总结