一道java算法题分析】的更多相关文章

最近在面试中遇到这样的一道算法题:       求100!的结果的各位数之和为多少?       如:5!=5*4*3*2*1=120,那么他们的和为1+2+0=3这道题不算难,不过倒是注意的细节也有一些:1.数据的越界问题 如果求的是171的阶乘的话,就会超出double类型的存储范围,这时候就要处理了,不然得到的结果是:Infinity1.可以通过java的BigInteger类来进行处理:2.可以将结果中的每一位数存在一个int类型的数组中,不过这个方法还没有想出来 代码如下: packa…
12个人围成一圈,序号依次从1至12,从序号1开始顺时针依次数,数到7的人退出,下一个再依次从1开始数,求留下来的最后一个人的原始序号. public static void joseph(int[] array,int n) { for (int i = 0; i < array.length; i++) { array[i] = i+1; } // 计数器 int counter = 0; // 剩余人数 int leftCount = array.length; // 索引 int ind…
写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> 28ms 最后以28ms的运行速度告结, 有更好的解法或者减少算法复杂度的博友可以给我发消息也可以评论, 我们一起讨论. 第一次在leetcode解算法题,想来个开门红,先挑选一道简单的题目AC了再说.leetcode对每道题都有一个难度提示,分别是easy,medium,hard 于是在第一页中看到了几道标…
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   //这是一个菲波拉契数列问题 [Java] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 public class test01 {     public static void main(String[] args) {         int f1=1,f2=1,f;  …
[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:   兔子的规律为数列1,1,2,3,5,8,13,21.... f(n)=f(n-2)+f(n-1) 使用递归 public static int fib(int n) { if(n==0 || n==1 ) { return 1; } else { return fib(n-1)+fib(n-2); } [程序2] 题…
[程序1]    题目:古典问题:有一对兔子,从出生后第3个月起每一个月都生一对兔子,小兔子长到第三个月后每一个月又生一对兔子,假如兔子都不死,问每一个月的兔子总数为多少?    //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数:    1"); System.out.println("第2个月的兔子对数:…
博客园 匠心零度 转载请注明原创出处,谢谢! 无意中了解到如下题目,觉得蛮好. 题目如下: public class TestSync2 implements Runnable { int b = 100; synchronized void m1() throws InterruptedException { b = 1000; Thread.sleep(500); //6 System.out.println("b=" + b); } synchronized void m2()…
1.编写一个程序,输入n,求n!(用递归的方式实现). public static long fac(int n){ if(n<=0) return 0; else if(n==1) return 1; else return n*fac(n-1); } public static void main(String [] args) { System.out.println(fac(6)); } 2.编写一个程序,有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 按…
题目 /*You are a professional robber planning to rob houses along a street. * Each house has a certain amount of money stashed, * the only constraint stopping you from robbing each of them is that * adjacent houses have security system connected and *…
一.第一种实现: 实现比较简单,直接贴现成的代码了,第一种实现: /** * 总人数 * * @param d */ private static void sortQuerry1(int d) { // TODO 先构造一个数组 ArrayList<Integer> arr = new ArrayList<>(); for (int i = 1; i <= d; i++) { arr.add(i); } int xiabiao = -1; int count = 0; //…