算法
Jason__Young
这个作者很懒,什么都没留下…
展开
-
高效率计算Fibonacci数列
Fibonacci的数列的通项公式是:F(0)=1,F(1)=1,F(n)=F(n-1)+F(n-2) (n>=2)。对于F(n)的求值,常见的做法是对进行递归运算。但是,随着输入规模n的增大,它的时间复杂度也会呈现指数级的增长,严重影响效率。其实,我们可以通过较小的存储来减少大量的重复计算,从而大大地提高运算效率。具体代码如下:public int fibonacci(int n原创 2017-07-11 23:14:02 · 418 阅读 · 0 评论 -
一行代码搞定n!末尾所含0的个数
如题:给定一个正整数n,计算n!末尾所含0的个数。对于这个题目,相信有很多种解法。这里,给出自己所想到的一种解法:2*(n/10) + n%10>=5?1:0针对这行代码,稍微解释一下。其实,针对这个题目,可以这样理解一下:要求一个正整数末尾所含0的个数,实际上就是求该正整数因式分解后所含因子中10的个数,而10又可以更进一步地因式分解成2*5。所以,该问题实际上就是求n!原创 2017-07-31 21:04:58 · 644 阅读 · 3 评论 -
一个for循环输出九九乘法口诀表
如题,用一个 for循环输出九九乘法口诀表。一般这种情况下,我们首先想到的会是用两个for循环来解决这样的问题。但是,实际上我们可以只需要使用一个for循环语句就可以做得到。下面给出具体的代码:for (int i = 1, j = 1; i 9; i++) { System.out.print(i + "*" + j + "=" + i * j); if (i ==原创 2017-07-31 21:35:03 · 4416 阅读 · 0 评论