Java实验报告一(完全数、一年四季、杨辉三角、path和classpath区别、next()和nextLine()区别)

1. 编写一个Java 程序,从键盘输入一个数,判断该数是否是完全数。完全数是指其所有因数(包

   1但不包括其自身)的和等于该数自身的数。例如28=1+2+4+7+14就是一个完全数。

import java.util.*;
public class App{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int N = (int)Math.sqrt(n);
		int sum = 1;
 	 	for(int i=2; i<=N; i++){ 
			if(n%i==0){
				sum += (i+n/i); // 把能%等0的两个数加起来
			}
		}
		if(N*N==n){ sum -= N; } // 如果一个完全数里边包含了自己的开方数那么减去一个
		if(n == sum){
			System.out.println(n+"是一个完全数");
		} else {
			System.out.println(n+"不是一个完全数");
		}
	}
}

2. 一年四季的划分。输入一个月份,输出为该月份所属的季节。

import java.util.*;
public class App1{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		if(n==12||n==1||n==2){ System.out.println("冬季"); }
		else if(n==3||n==4||n==5){ System.out.println("春季"); }
		else if(n==6||n==7||n==8){ System.out.println("夏季"); }
		else if(n==9||n==10||n==11){ System.out.println("秋季"); }
		else{ System.out.println("输入有误!"); }
	}
}

3. 输出杨辉三角形(注意:自行编写,代码不能与书上一模一样。)

import java.util.*;
public class App2{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入要打印的行数: ");
		int n = sc.nextInt();
		int[] dp = new int[n+1];
		int[] a = new int [n+1];
		a[1] = 1; dp[1] = 1; // 采用两个一维数组,大大减少内存消耗
		for(int i=1; i<=n; i++){
			dp[i] = 1; a[i] = 1;
			for(int j=2; j<i; j++){
				dp[j] = a[j-1]+a[j];
				a[j-2] = dp[j-2]; // 对数组进行拷贝
			} 
			a[i-1] = dp[i-1];    // 对数组进行拷贝
			if(i>2) a[i-2] = dp[i-2];// 对数组进行拷贝
			for(int j=1; j<=i; j++){
				System.out.print(dp[j]+" ");  // 输出
			}
			System.out.println();
		}
	}
}

1. Java的环境配置中,pathclasspath分别有何意义? 

path的作用:path是系统用来指定可执行文件的完整路径,即使不在path中设置JDK的路径也可执行Java文件,但必须把完整的路径写出来,如C:\Program Files\Java\jdk1.6.0_10\bin\javac TheClass.java。path是用来搜索所执行的可执行文件路径的,如果执行的可执行文件不在当前目录下,那就会依次搜索path中设置的路径;而java的各种操作命令是在其安装路径中的bin目录下,所以在path中设置了JDK的安装目录后就不用再把java文件的完整路径写出来了,它会自动去path中设置的路径中去找;

CLASSPATH的作用: classpath是指定你在程序中所使用的类(.class)文件所在的位置,就如在引入一个类时:import javax.swing.JTable这句话是告诉编译器要引入javax.swing这个包下的JTable类,而classpath就是告诉编译器该到哪里去找到这个类(前提是你在classpath中设置了这个类的路径);如果你想要编译在当前目录下找,就加上“.”,如:.;C:\Program Files\Java\jdk\,这样编译器就会到当前目录和C:\Program Files\Java\jdk\去找javax.swing.JTable这个类;

 

path与CLASSPATH 的区别:path是用来搜索所执行的可执行文件路径的,如果执行的可执行文件不在当前目录下,那就会依次搜索path中设置的路径。而CLASSPATH是用来告诉编辑器在那里寻找Java编译过程中所需的包和类所以其路径中配置的是lib目录下的tools.jar;

 

2JavaScanner类中, next()和和nextLine()方法有何区别?

next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。

使用nextLine()时,则可以扫描到一行内容并作为一个字符串而被获取到。

 

如,你输入的一行:abc cde efg

其中abc和cde之间有空格,cde和efg之间也有空格
这样,next()返回的是abc,
nexLine()返回的是整行:abc cde efg




 
 

猜你喜欢

转载自blog.csdn.net/weixin_39778570/article/details/80528934