电子版精晓Java中数组的应用

 

Java语言程序设计 上机实验2

实验目标:

  1. 掌握Java的主旨语言成分和流程控制语句。
  2. 明白Java中数组的利用,精通引用数据类型。
  3. 操纵String类的运用。

尝试内容:

注:标(*)为选做内容

  1. 将三个十进制的数字(0~9)字符串转换来对应的整数类型值,如”12345”。
  2. 兑现多少个分子方法,以多个已排序的数组为参数,将其统十分之一1个新数组,并赶回新数组。比如将{1,3,5,7}和{2,4,6,8}合并成{1,2,3,4,5,6,7,8}。
  3. 行使递归算法反转字符串,比如将str=”12345”作为参数输入给叁个静态递归方法后,再次来到”54321”。(其中str.isEmpty()方法可以判断str字符串是不是为空,再次回到布尔值)。
  4. 输出下列方阵:(n = 4)

1        2        6        7

3        5        8        13

4        9        12      14

10      11      15      16

  1. (*) 输出400以内的Smith数。Smith数是指满意下列原则的可诠释的整数:

其有着数位上的数字和十一分其全体素数因子的各位上的数字总和。

例如:9975是Smith数,9975=3*5*5*7*19,即9+9+7+5=3+5+5+7+1+9=30.

  1. (*) 用递归方法求n个数字(比如数组{1,2,3,4,5})的无重复全排列,并在程序中计数全排列的个数。

试行须求:

1. 在实验报告中提交程序运维结果截图。

  1. 源程序代码附到实验报告的尾声。

  2. 信以为真填写实验报告并妥善存档,在下次上机实验课从前发送电子版实验报告至 wsycup@foxmail.com

留意,“邮件题目”与“附件实验报告文件名”均为:

Java1试验报告N_学号_姓名

中间N为阿拉伯数字,指第5次试行,例如:

Java1实验报告1_ 2012010400_李雷

请严酷遵守分明的格式发送邮件(注意标题中“Java”后的数字“1”),否则邮件较多时大概导致混乱而被忽略,并在分明的时日发送实验报告邮件,过期无效。

  1. 实验报告雷同者将无法获取相应的日常分。

电子版, 

 

附录:实验报告

试验标题_____java实验报告二_____

学号__2014011329__    姓名__许恺_____    
班级____计算机14-1_____    
时间____2016.3.18____

试行标题解答

 

 

附:源程序

1.

1.
package com.Test1;

public class Test1 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String s1="213131";
        int i,num=0,j;
        boolean ju=true;        //判断能否输出
        for(i=s1.length()-1,j=1;i>=0;i--,j=j*10){
            num=num+(s1.charAt(i)-48)*j;        //将字符从后往前转换为整型
            if(s1.charAt(0)=='0'){        //判断首位是否为0
                System.out.println("首位为0,有误");
                ju=false;
            }    
        }
        if(ju==true)
            System.out.println(num);
    }
}

2.
package com.Test2;
import java.util.Arrays;
public class Test2 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[]=new int[]{1,3,5,7};
        int b[]=new int[]{2,4,6,8};
        int d[]=new int[a.length+b.length];
        d=add(a,b);    
        for(int i=0;i<d.length ;i++)        //输出最终数组        
        System.out.print(d[i]);
    }
    public static int[] add(int[] a,int b[]){    //静态数组不用新建对象
        int c[]=new int[a.length+b.length];
        int i,j=0;
        for(i=0;i<a.length;i++){        //连接两个数组
            c[i]=a[i];
        }
        for(;j<b.length;j++,i++){
            c[i]=b[j];
        }
        Arrays.sort(c);            //排序连接后的数组
        return c;
    }
}



3.
package com.Test3;

public class Test3 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str="12345";
        if(str.isEmpty()){
            System.out.println("字符串为空,有误");
        }
        else{
            System.out.println(transform(str));
        }
    }
    public static String transform(String str){
        char ch;
        ch=str.charAt(0);        //剥离首字符
        if(1==str.length()){    //到最后一个时返回
            return str;
        }
        else{
            str=transform(str.substring(1,str.length()));    //递归,把下一级的值赋给上一级
            str=str+ch;        //倒转
        }
        return str;
    }
}

4.
package com.emp;

public class emp {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[][]=new int[4][4];
        int i=0,j=0,n=1;
        while(i!=3||j!=3){
            if(i==0&&j==0){
                a[i][j]=n;
                n++;j++;
            }
            else{
                if(j==3){
                    a[i][j]=n;n++;
                    while(i!=3){
                        i++;j--;a[i][j]=n;n++;
                    }
                    j++;
                }
                else if(i==3){
                    a[i][j]=n;
                    n++;
                    while(j!=3){
                        i--;j++;a[i][j]=n;n++;
                    }
                    i++;
                }
                else if(i==0){
                    a[i][j]=n;n++;
                    while(j!=0){
                        i++;j--;a[i][j]=n;n++;
                    }
                    i++;
                } 
                else if(j==0){
                    a[i][j]=n;
                    n++;
                    while(i!=0){
                        i--;j++;a[i][j]=n;n++;
                    }
                    j++;
                }
            }
        }
        a[3][3]=16;
        for(i=0;i<4;i++){
            for(j=0;j<4;j++){
                if(a[i][j]>9)
                System.out.print(a[i][j]+"  ");
                else
                    System.out.print(a[i][j]+"   ");
            }
            System.out.println();
        }
    }

}

电子版 1

 

相关文章