Lesson_for_java_day07--练习--求因子、求个数和、位置倒置、升序排列、键盘循环输入数组

来源:互联网 发布:中文域名有必要注册吗 编辑:程序博客网 时间:2024/06/05 09:30

练习一:

/*练习:练习1:通过键盘输入三个数字,分别打印这三个数字的因子练习2:输入一个整数,打印这个数各位数之和如 125 各位数之和为7练习3:输入一个整数,并将这个整数的各个位数倒置如12345倒置后的数字为54321*/import java.util.Scanner;class Test01{public static void main(String[] args){//exercise1();//exercise2();exercise3();}//键盘输入三个整数,求这三个整数的因子public static void exercise1(){int num1 =  inputInt();int num2 =  inputInt();int num3 =  inputInt();sop(num1 + "的因子有:");printFactor(num1);sop(num2 + "的因子有:");printFactor(num2);sop(num3 + "的因子有:");printFactor(num3);}//输入一个整数,打印这个数各位数之和public static void exercise2(){int num = inputInt();int sum = sumUnit(num);sop("整数" + num + "各个位数之和为:" + sum);}//输入一个整数,并将这个整数的各个位数倒置public static void exercise3(){int num = inputInt();int reverseNum = numReverse(num);sop("整数" + num + "各位数位置倒置后为:" + reverseNum);}//整数各位数位置倒置public static int numReverse(int num){int reverse = 0;while(true){reverse = 10 * reverse + num%10;num = num / 10;if(num == 0) break;}return reverse;}//计算一个整数各个位数之和public static int sumUnit(int num){int sum = 0;while(true){sum += num%10;num = num / 10;if(num == 0) break;}return sum;}//键盘输入一个整数,并打印该整数的所以因子,public static void printFactor(int num){for(int i = 1; i <= num/2; i++){if(num % i == 0){sop(i + "是" + num + "因子");}}}//键盘中输入一个整数public static int inputInt(){Scanner input = new Scanner(System.in);sop("请输入一个整数:");return input.nextInt();}//打印字符串public static void sop(String s){System.out.println(s);}}

练习二:

/*练习:练习1:升序排列数组,并求最大值、最小值、查询数组中的元素练习2:键盘循环输入数组元素,并排序打印*/import java.util.Scanner;class Test02{public static void main(String[] args){upArray();//writeArray();}//升序排列数组public static void upArray(){int[] arr = new int[]{5,4,3,8,9,7,1,6,0,2};sop("排序前数组:");//排序前打印sopArray(arr);int max = arrayMax(arr);//数组中最大值sop("数组的最大值为:" + max + "\n");int min = arrayMin(arr);//数组中最小值sop("数组的最小值为:" + min + "\n");searchArray(arr,1);//查询数组是否包含某一元素sop("排序后数组:");//从小打大排序arraySort(arr);sopArray(arr);}//键盘循环输入数组,并排序打印public static void writeArray(){sop("请输入数组的长度:");int count = inputInt();//输入数组长度int[] arr = new int[count];//定义数组for(int i = 0; i < arr.length; i++){//输入数组元素sop("请输入第" + (i + 1 ) + "个数组元素:");arr[i] = inputInt();}sop("排序前数组:");//排序前打印sopArray(arr);sop("排序后数组:");//排序后打印arraySort(arr);sopArray(arr);}////查找数组中是否包含某一个元素public static void searchArray(int[] arr,int search){int index = -1;for(int i = 0; i < arr.length; i++){//查询是否包含元素,返回下标值if(arr[i] == search) {index = i;break;}}if(index == -1){//判断是否找到查找的元素sop("数组中没有" + search + "这个元素\n");}else{sop("数组中" + search + "是在第" + (index + 1) + "个元素\n");}}//查找数组中的最大值public static int arrayMax(int[] arr){int max = arr[0];for(int i = 0; i < arr.length; i++){if(max < arr[i]) max = arr[i];}return max;}//查找数组中的最小值public static int arrayMin(int[] arr){int min = arr[0];for(int i = 0; i < arr.length; i++){if(min > arr[i]) min = arr[i];}return min;}//数组的冒泡排序(从小到大)public static void arraySort(int[] arr){int a;for(int i = 0; i < arr.length; i++){for(int j = 0; j < arr.length - i-1; j++){if(arr[j] > arr[j + 1]){a = arr[j+1];arr[j+1] = arr[j];arr[j] = a;}}}}//打印数组public static void sopArray(int[] arr){sop("[");for(int i = 0; i < arr.length; i++){if(i == arr.length - 1)sop(arr[i] + "]");else sop(arr[i] + ",");}sop("\n");}//键盘中输入一个整数public static int inputInt(){Scanner input = new Scanner(System.in);return input.nextInt();}//打印字符串public static void sop(String s){System.out.print(s);}}


0 0
原创粉丝点击