很久没oj过了。。也学了一些东西。。。就来了个难题
http://acm.hdu.edu.cn/showproblem.php?pid=2041
还是要做笔记。。。
#include<iostream> #include<stdio.h> #include<string> using namespace std; int main() { int a[45]; //数字弄大点。。不容易出错。。 int n=0; int i=0; int k=0; scanf("%d",&n); int *sum=new int[n]; a[0]=0;a[1]=1; for(i=2;i<=44;i++) //先打表。。要不会超时。 { a[i]=a[i-1]+a[i-2]; } for(i=1;i<=n;i++) { scanf("%d",&k); sum[i-1]=a[k]; printf("%d\n",sum[i-1]); } delete[]sum; return 0; }
题外话:
题目要求的输入输出结构:
Input
输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
Output
对于每个测试实例,请输出不同走法的数量
其实就是一行输入,一行输出。。。