Java学习(三):简单算法实现
1、给定一个数组,针对其中的每一个元素若为偶数则缩小两倍,若为奇数则缩小扩大两倍
int[] numbers = new int[]{
1,2,3,4,5,6,7,8,9,10};
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 == 0) {
numbers[i] /= 2;
} else {
numbers[i] *= 2;
}
}
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
2、给定一个整型数组,输出他的最大值
int[] numbers = new int[]{
33,5,22,44,55};
int maxNumber = numbers[0] ;
for (int number : numbers) {
if (number > maxNumber) {
maxNumber = number;
}
}
System.out.println("max number is " + maxNumber);
3、给定一个随机整数列表,输出他的总和以及平均值
private static void arraySumTest(){
Random rand = new Random();
int[] numbers = new int[10];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = rand.nextInt(100) + 1;
System.out.print(numbers[i] + " ");
}
int sum = 0;
int avg = 0;
for (int i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
avg = sum / numbers.length;
System.out.println("\nsum is " + sum + ", avg is " + avg);
}
4、给定一个整型数组,将整个数组倒序排列
int[] numbers = new int[]{
1,2,3,4,5,6,7,8,9,10};
for (int i = 0; i < numbers.length/2; i++) {
int mapIndex = numbers.length - 1 - i;
int temp = numbers[i];
numbers[i] = numbers[mapIndex];
numbers[mapIndex] = temp;
}
for (int number : numbers) {
System.out.print(number + " ");
}
5、给定一个整型数组,随机打乱整个数组
int[] numbers = new int[]{
1,2,3,4,5,6,7,8,9,10};
Random random = new Random();
for (int i = 0; i < numbers.length; i++) {
int randIndex = random.nextInt(numbers.length);
int temp = numbers[i];
numbers[i] = numbers[randIndex];
numbers[randIndex] = temp;
}
for (int number : numbers) {
System.out.print(number + " ");
}
6、一辆公交车,最开始上面人数为0,在第一个站上了1个人,第二个站上了2个人但下了1个人,第三个站上了2人下了1人,在第四个站下了1人,最后上了1人,问总共有多少人?
public class CountPeopleOnBus {
public static void main(String[] args) {
int peopleOnBus = 0;
peopleOnBus = peopleOnBus + 1;
peopleOnBus = peopleOnBus + 2 - 1;
peopleOnBus = peopleOnBus + 2 - 1;
peopleOnBus = peopleOnBus - 1;
peopleOnBus = peopleOnBus + 1;
System.out.println(peopleOnBus);
}
}
7、一男一女相亲,如果你的时尚程度大于对方的时尚程度(1-10),那么就相亲成功,否则就相亲失败。
import java.util.Scanner;
public class Dating {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Input your fashion level (1-10):");
int boy_fashion_level = sc.nextInt();
while(true){
if (boy_fashion_level > 10 || boy_fashion_level < 1) {
System.out.println("You have entered an invalid fashion level, reInput:");
boy_fashion_level = sc.nextInt();
}
else{
break;
}
}
System.out.println("Input your partner's fashion level (1-10):");
int girl_fashion_level = sc.nextInt();
while(true){
if (girl_fashion_level > 10 || girl_fashion_level < 1) {
System.out.println("You have entered an invalid fashion level, reInput:");
girl_fashion_level = sc.nextInt();
}
else {
break;
}
}
if (boy_fashion_level > girl_fashion_level) {
System.out.println("Dating Success!");
}
else {
System.out.println("Dating Failed!");
}
}
}
8、不使用乘法、除法,给定一个被除数和除数,计算商和余数
import java.util.Scanner;
public class Division {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Input dividend number:");
int dividend = sc.nextInt();
System.out.println("Input divisor number:");
int divisor = sc.nextInt();
int count = 1;
int remainder = dividend - divisor;
while (remainder >= divisor) {
remainder = remainder - divisor;
count++;
}
System.out.println("quotient: " + count);
System.out.println("remainder: " + remainder);
}
}
9、输入一个整数,判断他是否是回文数,比如12321就是回文数,1234就不是回文数。
import java.util.Scanner;
public class LoopNumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Input a number:");
int number = sc.nextInt