1.声明一个int型的数组,循环随机生成13个1到13之间随机数放入到此数组中去,再循环输出
// 1.声明一个int型的数组,循环随机生成13个1到13之间随机数放入到此数组中去,再循环输出
public static void fun1() {
Random rd = new Random();
int[] arr = new int[13];
for (int i = 0; i < arr.length; i++) {
arr[i] = rd.nextInt(13) + 1;
}
System.out.println(arrayToString(arr));
}
2.循环输入5个整数放入到一个整形的数组中,然后再循环数组中的数,统计有多少个数大于0
// 2.循环输入5个整数放入到一个整形的数组中,然后再循环数组中的数,统计有多少个数大于0
public static void fun2() {
Scanner sc = new Scanner(System.in);
int[] arr = new int[5]; //声明数组
int count = 0; // 累加器
System.out.println("请依次输入5个整数");
for (int j = 0; j < arr.length; j++) {
System.out.print("arr[" + j + "]的值为:");
arr[j] = sc.nextInt(); //存储输入的值
}
System.out.println("数组中的值为" + arrayToString(arr));
for (int v : arr) {
if (v > 0) {
count++;
}
}
System.out.println("数组中大于0的个数为:" + count);
}
3.声明一个char型的数组,在此数组的单元格中放入"我爱你"三个字符,然后使用循环将它反序输出。如"你爱我"
/*3.声明一个char型的数组,在此数组的单元格中放入"我爱你"三个字符
然后使用循环将它反序输出。如"你爱我"*/
public static void fun3() {
char[] charArr = {'我', '爱', '你'};
for (int i = 0; i < charArr.length; i++) {
System.out.print(charArr[charArr.length - i - 1]);
}
System.out.println();
for(int i = charArr.length-1;i>=0;i--){
System.out.print(charArr[i]);
}
}
4.定义一个长度为5的字符串数组。循环输入5个姓名。然后再输入一个用户的姓名,检查数组中是否有这个人的姓名,并输出所在下标
/*4.定义一个长度为5的字符串数组。循环输入5个姓名。然后再输入一个用户的姓名
检查数组中是否有这个人的姓名,并输出所在下标*/
public static void fun4() {
String[] StringArr = new String[5];
Scanner sc = new Scanner(System.in);
String find; //存储需要查找的用户名
boolean flag = false; //标记查找是否存在
int k = 0; //存储查找匹配元素的下标
for (int i = 0; i < StringArr.length; i++) {
System.out.println("请输入编号" + (i + 1) + "的姓名:");
StringArr[i] = sc.next();
}
System.out.println("请输入查找的用户名");
find = sc.next();
for (int i = 0; i < StringArr.length; i++) {
if (StringArr[i].equals(find)) {
flag = true;
k = i;
break;
}
}
if (flag == true) {
System.out.println("查找到该用户,数组下标为:" + k);
} else {
System.out.println("找不到该用户");
}
}
5.定义一个长度为5的char型数组。初始化为{‘我’,‘爱’,‘你’,‘小’,‘样’}。再定义一个长度为5的char型数组,使用循环将上一个数组中的值全部内容复制到此数组中
/*5.定义一个长度为5的char型数组。初始化为{'我','爱','你','小','样'}
再定义一个长度为5的char型数组,使用循环将上一个数组中的值全部内容复制到此数组中*/
public static void fun5() {
char[] arr1 = {'我', '爱', '你', '小', '样'}; //初始数组
char[] arr2 = new char[5]; //目标数组
for (int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
System.out.println(arr2);
}
6.循环删除数组中的某一个的元素,如{“张三”,“李四”,“王五”,“赵六”},删除"李四",后面的元素往前推移
//6.循环删除数组中的某一个的元素,如{"张三","李四","王五","赵六"},删除"李四",后面的元素往前推移
public static void fun6() {
String[] str1 = {"张三", "李四", "王五", "赵六"};
String delName = "李四";
//定义变量,保存删除元素的索引下标
int index = -1;
System.out.println("删除前:");
System.out.println(arrayToString(str1));
for (int i = 0; i < str1.length; i++) {
//判断是否有"李四",找到了,则删除掉
if (str1[i].equals(delName)) {
index = i;
//找到了,删除
str1[i] = null;
break;
}
}
//后面的元素往前面推移,从被删除元素的位置后面开始往前移位
for (int i = index; i < str1.length - 1; i++) {
str1[i] = str1[i + 1];
}
//把最后一位清空
str1[str1.length - 1] = null;
System.out.println("删除后:");
System.out.println(arrayToString(str1));
}
7、使用一维数组打印斐波那契数列
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55…,这个数列从第3项开始,每一项都等于前两项之和
/*7、使用一维数组打印斐波那契数列
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55......,
这个数列从第3项开始,每一项都等于前两项之和*/
// 方法一:数组实现
public static void fun7() {
Scanner sc = new Scanner(System.in);
System.out.print("请输入斐波那契数列的个数: n = ");
int n = sc.nextInt();
int[] arr = new int[n];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
System.out.println(arrayToString(arr));
}
// 方法二:递归实现
public static void fun8(){
Scanner sc = new Scanner(System.in);
System.out.print("请输入斐波那契数列的个数: n = ");
int n = sc.nextInt();
for(int i = 1;i<=n;i++){
System.out.print(f(i)+" ");
}
}
public static int f(int n){
if(n==1||n==2){
return 1;
}
else{
return f( n - 1 )+f( n - 2 );
}
}
//方法三: 迭代法
public static void fun9(){
Scanner sc = new Scanner(System.in);
System.out.print("请输入斐波那契数列的个数: n = ");
int n = sc.nextInt();
int x=1;
int y=1;
int z=1;
for(int i=0;i<n;i++) {
if(i>=2) {
z=x+y;
x=y;
y=z;
}
System.out.print(z+" ");
}
}
---------------------------------------------------------------------------------
// 格式化打印整型数组
public static String arrayToString(int[] arr) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
sb.append(arr[i]);
} else {
sb.append(arr[i]).append(",");
}
}
sb.append("]");
String s = sb.toString();
return s;
}
// 格式化打印字符串数组
public static String arrayToString(String[] arr) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
sb.append(arr[i]);
} else {
sb.append(arr[i]).append(",");
}
}
sb.append("]");
String s = sb.toString();
return s;
}