递推—MLE祝你元宵节快乐!

think:
1 首先考虑数据范围,基本得用long long 类型的数组存储
2 考虑时间复杂度,基本用递归会超时,因此选用递推方法
3 考虑能否优化递推,发现无数据插入等影响因素,因此考虑先将需要的数值全部计算出来存储在数组中,之后需要只需调用数组中的对应数据即可
4 分析细节,比如是否为多组输入/输出是否有特殊要求等
5 编译代码,查找是否存在bug
6代入数据,代入样本数据和自己考虑的的临界/特殊等数据

sdut原题链接

MLE祝你元宵节快乐!
Time Limit: 1000MS Memory Limit: 65536KB

Problem Description
一个汤圆串可由长为 1 的 “M汤圆” 和长为 2 的 “LE汤圆” 两种汤圆组成,那么要组成长度为 n 的汤圆串可以有多少种不同的方案?

Input
先输入一个整数 t (1 <= t <= 100) 表示组数。
对于每组数据,输入一个整数 n (0 <= n <= 90),表示汤圆串的长度。

Output
对于每组输入,输出一个整数代表答案。

Example Input
2
1
2

Example Output
1
2

Hint
Author
「2017年寒假集训 阶段测试赛2 - 元宵节专场」MLE_kenan

以下为accepted代码

#include <stdio.h>
void ans(long long a[], int n)
{
    a[0] = 0;
    a[1] = 1;
    a[2] = 2;
    for(int i = 3; i <= n; i++)
    {
        a[i] = a[i-1] + a[i-2];
    }
}
int main()
{
    int T, n;
    long long a[90];
    ans(a, 90);
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d", &n);
        printf("%lld\n", a[n]);
    }
    return 0;
}


/***************************************************
User name: jk160630
Result: Accepted
Take time: 0ms
Take Memory: 104KB
Submit time: 2017-02-13 16:50:44
****************************************************/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值