java课堂作业(五)

1、来自 http://ccjsjymg.iteye.com/blog/351087

 1 package util;
 2 
 3 /**
 4  * 写两个方法,其中一个方法可以把某个整数插入到整型数组的特定位置,数组中原有元素向后移动
 5  * 另一个方法能够从整形数组中特定位置删除掉一个元素,数组中原有元素向前移动
 6  * @author zhanglu
 7  */
 8 public class NuberArrayOperator {
 9     /**
10      * 整数插入到整型数组的特定位置,数组中原有元素向后移动
11      * @param array
12      */
13     public int[] insertNumber(int[] array,int insertIndex,int insertNumber){
14         if(array == null || array.length == 0){
15             System.out.println("数组不存在");
16             return null;
17         }
18         int len = array.length;
19         if(insertIndex >= len || insertIndex < 0){
20             System.out.println("插入位置不正确,请重新设置");
21             return null;
22         } 
23         int i = 0 ;
24         for(;i < len;){
25             if(i == insertIndex){
26                 break;
27             }
28             i++;
29         }
30         len++;
31         int[] _array = new int[len];
32         System.arraycopy(array, 0, _array, 0, array.length);
33         int j = i;
34         int temp = 0;
35         for(;j < _array.length-1;j++){
36             int t = _array[j+1];
37             if(temp == 0){
38                 _array[j+1] = _array[j];
39             }else{
40                 _array[j+1] = temp;
41             }
42             temp = t;
43             
44         }
45         _array[i] = insertNumber;
46         return _array;
47     }
48     
49     /**
50      * 整形数组中特定位置删除掉一个元素,
51      * 数组中原有元素向前移动
52      */
53     public int[] removeArray(int[] array,int removeIndex){
54         if(array == null || array.length == 0){
55             System.out.println("数组不存在");
56             return null;
57         }
58         int len = array.length;
59         if(removeIndex >= len || removeIndex < 0){
60             System.out.println("没有此索引");
61             return null;
62         }
63         //变相移位法
64         /*int i = 0;
65         for(;i < len;i++){
66             if(i == removeIndex){
67                 break;
68             }
69         }
70         for(int j = i;j < len-1;j++){
71             array[j] = array[j+1];
72         }
73         len--;
74         int[] _array = new int[len];
75         for(int k = 0;k < len;k++){
76             _array[k] = array[k];
77         }
78         */
79         //替代法
80         int i = 0;
81         int[] _array = new int[len-1];
82         int n = 0;
83         for(;i < len;i++){
84             if(i != removeIndex){
85                 _array[n++] = array[i];
86             }
87         }
88         len--;
89         return _array;
90     }
91 }

 2、假设有8支球队

String[] team = {"队1","队2","队3","队4","队5","队6","队7","队8"};

1vs2   1vs3   1vs4    ....   1vs8

2vs1   2vs3   2vs4    ....   2vs8

...

8vs1   8vs2   8vs3    ....   8vs7

经过分析我们发现 自己不能和自己比赛 所以应该有一个判断语句 continue出循环

 1 String[] team = {"队1","队2","队3","队4","队5","队6","队7","队8"};
 2         for (int i=0;i<=7;i++){
 3             for(int j=0;j<=7;j++){
 4             if(i==j)
 5             {
 6             continue;
 7             }
 8             System.out.print(team[i]+"vs"+team[j]+"   ");
 9             }
10             System.out.println();
11             }

运行如下:

出错了,这样不对啊

待补充。。。

3、谷歌了一下,脑子这时不好使了,该休息了啊。。。

 1 public static int getNum(Integer num){
 2                 int[] nums=new int[4];
 3                 nums[0]=num/1000;//取出千位数字
 4                 nums[1]=num%1000/100;//取出百位数字
 5                 nums[2]=num%100/10;//取出十位数字
 6                 nums[3]=num%10;//取出个位数字
 7                 Arrays.sort(nums);//排序,从小到大;
 8                 int a=nums[0]*1000+nums[1]*100+nums[2]*10+nums[3];//min
 9                 int b=nums[3]*1000+nums[2]*100+nums[1]*10+nums[0];//max
10                 int c=b-a;
11                 System.out.println(c+"="+b+"-"+a);
12                 return c;
13             }
1 public static int getStep(Integer num){
2                 int count=0;//计数
3                 while(num!=6174){ 
4                     num=getNum(num);
5                     count++;
6                 }
7                 System.out.println("共用"+count+"步");
8                 return count;
9             }
1 getStep(5735);

 

posted @ 2013-08-27 21:29  董文博  阅读(375)  评论(0编辑  收藏  举报