• HAUTOJ 1283 YK的书架


    题目描述

        YK新买了2n+1本相同的书,准备放在家里的3层书架上(每一层放书的数量>=0且<=n)。不过YK摆放他的书有些特殊的要求,即任意两层摆放的书的数目之和,严格大于另一层的书的数目。现在YK想知道在满足他的要求的前提下有多少种不同的摆书方法。

    输入

    输入有多行,每行一个整数n(1<=n<1e9),其含义如题目描述中所述

    输出

    对于每行输入,输出一行答案。

    样例输入

    1
    2
    

    样例输出

    1
    3
    题意描述:
    输入一个整数n(1<=n<1e9)
    计算并输出2n+1本书放在三层书架上一共有多少种放法
    解题思路:
    题目很棒。刚开始手算了几个数,感觉肯定是规律题,后来直接编程用暴力求解1到100,虽然不能提交,但是能解决帮助找到规律不是,先写了一个递归,改成用数组优化的递归,都是只能算到10000,因为递归是需要
    调用栈的,如果调用递归次数太多,自然就不可行了。最后直接发现了n和方案数的关系,没想到几行代码就搞定了。
    代码实现:
     1 #include<stdio.h>
     2 int main()
     3 { 
     4     long long N;
     5     while(scanf("%lld",&N) != EOF)
     6     {
     7         printf("%lld
    ",N*(N+1)/2);
     8     }
     9     return 0;
    10 }

    易错分析:

    1、规律题适当借助程序找规律

    2、数据太大的一般方法都很简便。

    
    


  • 相关阅读:
    TDD
    算法与数据结构 文档 1 洋洋洋传
    编程的专精度
    python小课
    有时心情舒畅时打个代码心里都是默默地同步输出...
    同时可以运行在JVM上的Kotlin~枚举和判定以及数据对象的写法总结
    map
    multiset
    set
    priority_queue
  • 原文地址:https://www.cnblogs.com/wenzhixin/p/7288918.html
Copyright © 2020-2023  润新知