JAVA经典算法40题(20)

来源:互联网 发布:华为mate9数据恢复 编辑:程序博客网 时间:2024/06/10 08:26

程序39】
题目:字符串排序。

Java代码 复制代码 收藏代码
  1. import java.util.*;
  2. public class test{
  3. public static void main(String[] args){
  4. ArrayList list=new ArrayList();
  5. list.add("010101");
  6. list.add("010003");
  7. list.add("010201");
  8. Collections.sort(list);
  9. for(int i=0;i
  10. System.out.println(list.get(i));
  11. }
  12. }
  13. }

【程序40】
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

Java代码 复制代码 收藏代码
  1. public class Dg {
  2. static int ts=0;//桃子总数
  3. int fs=1;//记录分的次数
  4. static int hs=5;//猴子数...
  5. int tsscope=5000;//桃子数的取值范围.太大容易溢出.
  6. public int fT(int t){
  7. if(t==tsscope){
  8. //当桃子数到了最大的取值范围时取消递归
  9. System.out.println("结束");
  10. return 0;
  11. }else{
  12. if((t-1)%hs==0 && fs <=hs){
  13. if(fs==hs){
  14. System.out.println("桃子数 = "+ts +" 时满足分桃条件");
  15. }
  16. fs+=1;
  17. return fT((t-1)/5*4);// 返回猴子拿走一份后的剩下的总数
  18. }else{
  19. //没满足条件
  20. fs=1;//分的次数重置为1
  21. return fT(ts+=1);//桃子数加+1
  22. }
  23. }
  24. }
  25. public static void main(String[] args) {
  26. new Dg().fT(0);
  27. }
  28. }  
原创粉丝点击