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的环境配置中,path和classpath分别有何意义?
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;
2.Java的Scanner类中, next()和和nextLine()方法有何区别?
next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。
使用nextLine()时,则可以扫描到一行内容并作为一个字符串而被获取到。
如,你输入的一行:abc cde efg
其中abc和cde之间有空格,cde和efg之间也有空格
这样,next()返回的是abc,
而nexLine()返回的是整行:abc cde efg