罗宏昆JAVA作业
所有程序均是自己一个一个敲进去,类名work3_2代表第三章第二题的求解结果,求解环境为IDEA。
第二章
1、 用移位运算实现求2的x次方。
import java.util.Scanner;
public class work2_1 {
public static void main(String [] args){
Scanner input =new Scanner(System.in);
while(input.hasNext()){
int n = input.nextInt();
int num = 2 << n-1;
System.out.println(num);
}
}
}
输出结果
2、 用按位与运算,取模运算、判断一个数是否为奇数。
import java.util.Scanner;
public class work2_2 {
public static void main(String [] args){
Scanner input =new Scanner(System.in);
work2_2 a=new work2_2();
int int1=input.nextInt();
boolean b=a.isOddNumber(int1);
if(b==true){
System.out.println(int1+"是奇数");
}
else
System.out.println(int1+"是偶数");
}
public Boolean isOddNumber(int integer){
if ((integer&1)==1)
{
return true;
}
return false;
}
}
输出结果
3、 判断一个数是否是2的n 次幂
import java.util.Scanner;
public class work2_3 {
public static void main(String [] args) {
Scanner input = new Scanner(System.in);
work2_3 a=new work2_3();
int int1=input.nextInt();
int int2=input.nextInt();
int int3=input.nextInt();
int int4=input.nextInt();
System.out.println(a.isTwoPower(int1));
System.out.println(a.isTwoPower(int2));
System.out.println(a.isTwoPower(int3));
System.out.println(a.isTwoPower(int4));
}
public boolean isTwoPower(int n) {
return n > 0 && (n & (n - 1)) == 0;
}
}
输出结果
第三章
1、 计算多项式1!+2!+3!…+n!,当多项式之和超过10000时停止,并输出累加之和以及n的值。
import java.util.Scanner;
public class work3_1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
work3_1 a = new work3_1();
int sum = 0;
int i=1;
while (sum<=10000) {
sum = sum + a.factorial(i);
i = i + 1;
}
System.out.println(sum);
System.out.println(i-1);
}
public int factorial(int i) {
if (i == 1)
return i;
else
return i * factorial(i - 1);
}
}
输出结果
2、 从标准输入端输入一个字符,判断字符是数字、还是西文字母还是其他的字符。
import java.util.Scanner;
public class work3_2 {
public static void main(String [] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入字符");
char ch = input.next().charAt(0);
if (ch >= 65 && ch <= 90) {
System.out.println(ch + " 是 " + "大写字母");
} else if (ch >= 97 && ch <= 122) {
System.out.println(ch + " 是 " + "小写字母");
} else if (ch >= '0' && ch <= '9') {
System.out.println(ch + " 是 " + "数字");
} else {
System.out.println(ch + " 是 " + "其他字符");
}
}
}
输出结果
3、 利用辗转相除法(欧几里得算法)求两个正整数的最大公约数
import java.util.Scanner;
public class work3_3 {
public static void main(String [] args){
Scanner input =new Scanner(System.in);
System.out.println("请输入测试数据:");
work3_3 a=new work3_3();
int int1=input.nextInt();
int int2=input.nextInt();
System.out.println(work3_3.solution(int1,int2)+"为两个整数的最大公约数");
}
public static int maxint(int a,int b){
if(a>b)
return a;
else
return b;
}
public static int minint(int a,int b){
if(a<b)
return a;
else
return b;
}
public static int solution(int a,int b){
while (a%b!=0){
int c;
c=a%b;
a= work3_3.maxint(b,c);
b= work3_3.minint(b,c);
}
return b;
}
}
输出结果
4、 假设一个数在1000到1100之间,那除以3结果余2,;除以5结果余3,;除以7结果余2(中国剩余定理),求此数。
import java.util.Scanner;
public class work3_4 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int i;
for(i=1000;i<=1100;i++){
if(i%3==2&&i%5==3&&i%7==2)
break;
}
System.out.println(i);
}
}
输出结果
5、 小球从100米高度自由落下,每次触地后反弹到原来高度的一半,求第10次触地时经历的总路程以及第10次反弹高度。
import java.util.Scanner;
public class work3_5 {
public static void main(String[] args){
float height;
int i;
float sum_h=0;
for(i=0,height=100;i<10;i++)
{
sum_h=sum_h+height;
height=height/2;
}
System.out.println(sum_h);
System.out.println(height);
}
}
输出结果