一.第一种实现: 实现比较简单,直接贴现成的代码了,第一种实现: /** * 总人数 * * @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; //…
提示:用环形链表实现 对于这个题目其实就是用c语言的循环链表实现一个约瑟夫环.我们可以定义一个循环链表,将这n个人加入到链表中,然后定义三个节点指针在链表上循环,移动跨度为3,利用链表的循环功能每次删除第三个节点,这边要注意的一个问题就是你定义的是3个指针,且在循环中他们彼此也都是有 ->next关系,一般我们判断循环结束条件时都是一个节点的下一个节点是否为它本身(如ptr->next == ptr),这里我们要注意循环体中链接方向否则很可能出现无用指针导致错误,因为最后我们要剩下一个节点那么…
1 /*37 [程序 37 报数] 2 题目:有 n 个人围成一圈,顺序排号.从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子, 3 问最后留下的是原来第几号的那位. 4 */ 5 6 /*分析1====错误分析,没有注意到要退出圈子!!! 7 * 1.用一个数组存放n个1,从头开始报数 8 * 2.声明一个计数器,报数为3时,数组中的数赋为0,计数器重置 9 * 3.一直直到还剩下最后一个不为0的数,这个数的角标加1就是原来的几号 10 * 11 * 分析2:----利用A…
最近在面试中遇到这样的一道算法题:       求100!的结果的各位数之和为多少?       如:5!=5*4*3*2*1=120,那么他们的和为1+2+0=3这道题不算难,不过倒是注意的细节也有一些:1.数据的越界问题 如果求的是171的阶乘的话,就会超出double类型的存储范围,这时候就要处理了,不然得到的结果是:Infinity1.可以通过java的BigInteger类来进行处理:2.可以将结果中的每一位数存在一个int类型的数组中,不过这个方法还没有想出来 代码如下: packa…
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 *…
题目:古典问题:有一对兔子,从出生后第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个月的兔子对数:…
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个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? pu…