1、给一个不多于5位的正整数,求是几位数,逆序打印各位数字
import java.util.Scanner;
/**
* 给一个不多于5位的正整数,求是几位数,逆序打印各位数字
* @author 努力Coding
* @version
* @data 2020年1月8日
*/
public class HowManyNum {
public static void main(String[] args) {
int[] arr = new int[5];//声明一个数组存放逆序输出的各位数
System.out.println("输入一个不多于5位的正整数:");
Scanner input = new Scanner(System.in);
if(input.hasNextInt()) {//判断输入是否为整数
int num = input.nextInt();
if(num > 99999 || num < 0) {//判断是否不多于5位
System.out.println("非法输入,请输入不多于5位的正整数");
}else {
String count = String.valueOf(num);//计算有多少位
System.out.println(num + "是" + count.length() + "位数");
for(int i = 0; i < count.length(); i++) {
arr[i] = num % 10;//取个位
num /= 10;//去个位
}
System.out.println("逆序输出各位数:");
for(int i = 0; i < count.length(); i++) {//遍历输出
System.out.print(arr[i] + ",");
}
}
}else {
System.out.println("非法输入,请输入不多于5位的正整数");
}
input.close();//关闭输入
}
}
2、有n个整数,使其前面各数顺序向后移动m个位置,最后m个数变成最前面的m个数
import java.util.Scanner;
/**
* 有n个整数,使其前面各数顺序向后移动m个位置,最后m个数变成最前面的m个数
* @author 努力Coding
* @version
* @data 2020年1月8日
*/
public class MovePosition {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入整数的个数:");
int len = input.nextInt();//元素个数,即数组长度
int[] arr = new int[len];//声明一个数组
for(int i = 0; i < len; i++) {//输入数组元素
System.out.println("请输入第" + (i+1) + "个数字");
arr[i] = input.nextInt();
}
System.out.println("-------------------");
System.out.println("当前输入的数组元素为:");
for(int i = 0; i < len; i++) {
System.out.print(arr[i] + ",");
}
System.out.println();
System.out.println("-------------------");
System.out.print("请输入向后移动几位:");
int moveNum = input.nextInt();//移动多少位
if(moveNum > len || moveNum < 0) {//移动位数不能超过数组长度,也不能小于0
System.out.println("输入不合法");
}
int[] newArr = new int[len];//声明一个新数组
for(int i = 0; i < len; i++) {
newArr[i] = arr[i];//把旧数组的元素给新数组
}
for(int i = 0; i < len; i++) {
int temp = (i + moveNum) % len;//移动后的新位置
arr[temp] = newArr[i];//获取新位置后的数组
}
System.out.println("-------------------");
System.out.println("向后移动" + moveNum +"位后数组元素为:");
for(int i = 0; i < len; i++) {
System.out.print(arr[i] + ",");
}
input.close();
}
}
3、使用循环随机生成10个随机数存放在数组中,找出最大,最小值,打印出来
import java.util.Random;
/**
* 使用循环随机生成10个随机数存放在数组中,找出最大,最小值,打印出来
* @author 努力Coding
* @version
* @data 2020年1月8日
*/
public class RandNum {
public static void main(String[] args) {
int[] arr = new int[10];//声明一个数组存放随机数
/*假设第一个元素是最大值和最小值*/
int max = arr[0];//最大值
int min = arr[0];//最小值
for (int i = 0; i < arr.length; i++) {
Random random = new Random();//产生随机数
arr[i] = random.nextInt(10);//0-10之间的随机数
}
System.out.println("生成的数组是:");
for(int x : arr) {
System.out.print(x + ",");//打印随机数生成的数组
}
for (int i = 0; i < arr.length; i++) {
if(max < arr[i]) {//判断 最大值
max = arr[i];
}
if(min > arr[i]) {//判断 最小值
min = arr[i];
}
}
System.out.println();
System.out.println("最大的是:" + max + ",最小的是:" + min);
}
}