练习一:
/*
练习:
练习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);
}
}