1.有1、2、3、4共4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
代码
1 package Person; 2 3 public class Sws { 4 public static void main(String[] args) { 5 int a,b,c,s,count; 6 count=0; 7 for(a=1;a<=4;a++){ 8 for(b=1;b<=4;b++){ 9 for(c=1;c<=4;c++){ 10 if(a!=b && b!=c && a!=c){ 11 count++; 12 s=a*100+b*10+c; 13 System.out.println(s); 14 } 15 } 16 } 17 } 18 System.out.println("能组成"+count+"个不同的三位数"); 19 20 } 21 }
运行界面
2.公鸡5元/只,母鸡3元/只,小鸡3只/元,问100元买100只鸡,公鸡、母鸡、小鸡各几只?
代码
2 package Person; 3 4 public class Chicken { 5 public static void main(String[] args) { 6 int i,j,k; //i公鸡,j母鸡,k小鸡 7 for(i=0;i<20;i++){ 8 for(j=0;j<33;j++){ 9 for(k=0;k<300;k=k+3){ 10 if(i+j+k==100 && i*5+j*3+k/3==100) 11 System.out.println("公鸡"+i+"只"+" 母鸡"+j+"只"+" 小鸡"+k+"只"); 12 } 13 } 14 } 15 16 } 17 }
运行界面
3.声明一个整型变量a,并赋初值5,在程序中判断a是奇数还是偶数,然后输出判断的结果
代码
1 package Person; 2 3 public class Jiou { 4 public static void main(String[] args) { 5 int a=5; 6 if(a%2==0) 7 System.out.println("偶数"); 8 else 9 System.out.println("奇数"); 10 11 } 12 }
运行界面
4.实现一个数字加密器。运行时输入加密前的整数,通过加密运算后,输出加密后的结果,加密结果仍为一整数
加密规则为:加密结果 = (整数*10+5) / 2 + 3.14159
代码
1 package Person; 2 import java.util.*; 3 4 public class Password { 5 public static void main(String[] args) { 6 Scanner sc= new Scanner(System.in); 7 int i; 8 double s; 9 i=sc.nextInt(); 10 s=(i*10+5)/2+3.14159; 11 System.out.println((int)s); 12 13 } 14 }
运行界面
5.从键盘输入圆的半径,计算圆的面积并输出。
代码
1 package Person; 2 import java.util.*; 3 4 public class Round { 5 public static void main(String[] args) { 6 Scanner sc= new Scanner(System.in); 7 float r,s; 8 r=sc.nextFloat(); 9 s=3.14f*r*r; 10 System.out.println(s); 11 12 } 13 }
运行界面
6.判断输入的整数是否为素数
代码
1 package Person; 2 import java.util.*; 3 4 public class Sushu { 5 public static void main(String[] args) { 6 Scanner sc= new Scanner(System.in); 7 int i,j; 8 boolean flag=true; //默认是素数 9 j=sc.nextInt(); 10 if(j==1){ 11 flag=false; 12 } 13 for(i=2;i<j;i++){ 14 if(j%i==0){ 15 flag=false; 16 break; 17 } 18 } 19 if(flag){ 20 System.out.println(j+"是素数"); 21 } 22 else{ 23 System.out.println(j+"不是素数"); 24 } 25 26 } 27 }
运行界面
7.一维数组的创建和遍历。
声明并创建存放4个人考试成绩的一维数组,并使用for循环遍历数组并打印分数。要求:
首先按“顺序”遍历,即打印顺序为:从第一个人到第四个人;
然后按“逆序”遍历,即打印顺序为:从从第四个人到第一个人;
输出最高分;
输出最低分;
代码
1 package Person; 2 import java.util.*; 3 4 public class Score { 5 public static void main(String[] args) { 6 Scanner sc= new Scanner(System.in); 7 int i,max,min; 8 int a[]=new int[4]; 9 for(i=0;i<4;i++){ 10 a[i]=sc.nextInt(); 11 } 12 System.out.println("成绩顺序遍历为:"); 13 for(i=0;i<4;i++){ 14 System.out.println(a[i]); 15 } 16 System.out.println("成绩逆序遍历为:"); 17 for(i=3;i>=0;i--){ 18 System.out.println(a[i]); 19 } 20 max=0; 21 for(i=1;i<4;i++){ 22 if(a[max]<a[i]){ 23 max=i; 24 i++; 25 } 26 } 27 System.out.println("最高分为:"+a[max]); 28 min=0; 29 for(i=1;i<4;i++){ 30 if(a[min]>a[i]){ 31 min=i; 32 i++; 33 } 34 } 35 System.out.println("最低分为:"+a[min]); 36 37 } 38 }
运行界面
8.Arrays类的sort方法的理解与应用(参照110页程序)。
对无序的10个数字使用Arrays类的sort方法(可对任意类型的数组进行升序排列)进行排序。要求:
声明并初始化数组
按如下格式输出排序后的数组
sum[0] = 1
sum[1] = 2
…
代码
1 package Person; 2 import java.util.*; 3 4 public class Sort { 5 public static void main(String[] args) { 6 int sum[]=new int[]{2,3,8,4,7,1,6,5,9,10}; 7 int i; 8 Arrays.sort(sum); 9 for(i=0;i<10;i++){ 10 System.out.println("sum["+i+"]="+sum[i]); 11 } 12 13 } 14 }
运行界面
9.一个班级的学生成绩存在长度为10的数组中,计算不及格的学生数目。
代码
1 //一个班级的学生成绩存在长度为10的数组中,计算不及格的学生数目。 2 package Person; 3 4 public class Fail { 5 public static void main(String[] args) { 6 int a[]=new int[]{59,78,99,85,15,93,77,54,65,57}; 7 int count=0; 8 for(int i=0;i<10;i++){ 9 if(a[i]<=60){ 10 count++; 11 } 12 } 13 System.out.println("不及格的学生数目为:"+count); 14 } 15 }
运行界面
10.身份证号码的判断。
声明String类型的字符串,保存身份证号码。编写程序判断:
该号码是否为湖南长沙的号码(判断依据:前4位为4301,即长沙号码;否则不是长沙号码)。
该号码主人的性别(判断依据:第17位为奇数,性别为男;第17位为偶数,性别为女)。
代码
1 package Person; 2 3 public class Idcard { 4 public static void main(String[] args) { 5 String id; 6 id="332522199110071234"; 7 String substr=id.substring(0, 3); 8 char mychar=id.charAt(16); 9 10 if(id.substring(0, 3)=="4301"){ 11 System.out.println("这是长沙的号码"); 12 } 13 else{ 14 System.out.println("这不是长沙的号码"); 15 } 16 17 if(mychar%2==0){ 18 System.out.println("性别为女"); 19 } 20 else{ 21 System.out.println("性别为男"); 22 } 23 24 } 25 }
运行界面
11.实现一个二维数组的转置,操作过程是将二维数组表示的矩阵对应的每一个元素number[i][j]被置为number[j][i]。要求:
可以借助一个新的数组来完成转置
如果不借助新的数组完成转置。
转置举例:
1 2 3 1 4 7
4 5 6 2 5 8
7 8 9 3 6 9
代码
1 package Person; 2 3 public class Transpotion { 4 public static void main(String[] args) { 5 int a[][]={{1,2,3},{4,5,6},{7,8,9}}; 6 int b[][]=new int[3][3]; 7 int i,j; 8 9 System.out.println("原数组为:"); 10 for(i=0;i<3;i++){ 11 for(j=0;j<3;j++){ 12 System.out.print(a[i][j]+" "); 13 } 14 System.out.println(); 15 } 16 17 System.out.println("不借助新数组,倒置后的数组为:"); 18 for(i=0;i<3;i++){ 19 for(j=0;j<3;j++){ 20 System.out.print(a[j][i]+" "); 21 } 22 System.out.println(); 23 } 24 25 26 } 27 }
运行界面
今日小结:
(int+float=float)以及结果的强制转换最好在输出的地方进行转换(见第4题)
boolean 在java中boolean值只能是true和false,而不能用0和1代替,并且一定要小写。 (if(flag)即 flag为真 即true)(1不是素数,最小的素数是2)(见第6题)
Arrays类(需要先导入包 import Java.util.*;)中sort方法(Arrays.sort(数组名);),可对任意类型的数组进行升序排列 (String类型数组中,数字排在字母前面,大写字母排在小写字母前面)(见第8题)