小球落地问题
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。
它在第N次落地时反弹多高?共经过多少米? 保留两位小数
第一次落地反弹 M/2,
第二次落地反弹 M/4 (即 M/(2^2)),
第三次落地反弹 M/8 (即 M/(2^3)),
以此类推第 N次反弹高度为 M/(2^N)
public class Test{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int M = scanner.nextInt(); //总高度 int N = scanner.nextInt(); //反弹的次数 double height = 0,sum = M; for(int i=1;i<=N;i++) { height=M/Math.pow(2, i); if(i<N) { sum += 2*height; }else if(i==N) { sum += 0; } } String h = String.format("%.2f", height); String s = String.format("%.2f", sum); System.out.println(h+" "+s); } }
求n以内的素数
对正整数 n,如果用 2到 之间的所有整数去除,均无法整除,则 n为质数。质数大于等于 2 不能被它本身和 1 以外的数整除
public class Test { public static void main(String[] args) { boolean flag; Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i=2;i<=n;i++) { flag=true; for(int j=2;j<=Math.sqrt(i);j++) { if(i%j==0) { flag=false;//不是素数 } } if (flag==true) { System.out.println(i); } } } }
数组的插入和排序
已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
public class Test { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[]a = new int[10]; for(int i=0;i<a.length-1;i++) { a[i]=scanner.nextInt(); } int b =scanner.nextInt(); a[a.length-1]=b; for(int i =a.length-1;i>0;i--) { if(a[i]<a[i-1]) { int temp = a[i-1]; a[i-1] =a[i]; a[i]=temp; } } for(int n:a) { System.out.println(n); } } }
自定义函数处理素数
写入一个判断素数的函数,在主函数输入一个整数,输出是否为素数,如果是素数输出prime,否则输出not prime
1 public class Test { 2 public static void main(String[] args) { 3 int n; boolean flag; 4 Scanner scanner = new Scanner(System.in); 5 n = scanner.nextInt(); 6 flag = prime(n); 7 if (flag) { 8 System.out.print("prime"); 9 }else { 10 System.out.print("not prime"); 11 } 12 } 13 //判断是否为素数 14 public static boolean prime(int n) { 15 int i;boolean flag = true; 16 if (n<1||n==1) { 17 flag = false; 18 return flag; 19 } 20 for(i=2;i<n;i++) { 21 if (n%i==0) { 22 flag=false; 23 } 24 } 25 return flag; 26 } 27 }
二维数组的转置
写入一个函数,使给定的一个二维数组(3x3)转置,即行列互换
1 public class Test{ 2 public static void main(String[] args) { 3 Scanner scanner = new Scanner(System.in); 4 int[][] arr = new int[3][3] ; 5 //接收键盘输入的二维数组 6 for(int i=0;i<3;i++) { 7 for(int j=0;j<3;j++) { 8 int num = scanner.nextInt(); 9 arr[i][j]=num; 10 } 11 } 12 printArray(arr); 13 } 14 //遍历输出二维数组 15 private static void printArray(int[][] arr) { 16 for (int i = 0; i < arr.length; i++) { 17 for (int j = 0; j < arr.length; j++) { 18 System.out.print(arr[j][i]+" "); 19 } 20 } 21 } 22 }