旨在记录学习Java的路程,因能力不足,若有错误还请指正
题目
第4题有点表述不清
第1题:
本题中int类型的长度是不够的,必须定义成long类型
public class Code1 {
public static void main(String args[]) {
System.out.println(fun());
}
public static long fun() {
long sum = 0L;
for (int i = 1; i <= 20; i++)
sum += fact(i);
return sum;
}
//递归
public static long fact(int n) {
if (n == 1)
return 1;
return n * fact(n - 1);
}
//非递归
// public static long fact(int n) {
// long res = 1L;
// for (int i = 1; i <= n; i++)
// res *= i;
// return res;
// }
}
第2题:
本题中所用的printf()和C语言中的特别像,只是为了打印出来好看
public class Code1 {
public static void main(String args[]) {
fun();
}
public static void fun() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=");
System.out.printf("%-4d", i * j);
}
System.out.println();
}
}
}
第3题:
本题用递归会方便一些,也可以创建数组,让数组去存储二进制数
import java.util.Scanner;
public class Code1 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
dectobin(n);
}
public static void dectobin(int n) {
if (n / 2 > 0)
dectobin(n / 2);
System.out.print(n % 2);
}
}
第4题:
该题表述有点问题,但是都能明白是什么意思
public class Code1 {
public static void main(String args[]) {
System.out.println(getAge());
}
public static int getAge() {
int age = 8;
for (int i = 1; i < 5; i++)
age += 2;
return age;
}
}
第5题:
题目说有30个0~9之间的数字,这里就直接采用随机数的方法创建30个随机数
import java.util.Random;
public class Code1 {
public static void main(String args[]) {
int[] arr = new int[30];
System.out.println("30个数字为:");
for (int i = 0; i < 30; i++) { //随机创建30个0~9的随机数
Random rand = new Random();
arr[i] = rand.nextInt(10);
System.out.print(arr[i] + " ");
}
System.out.println();
getNum(arr);
}
public static void getNum(int[] arr) {
int[] num = new int[10]; //该数组用来记录0~9每个数字的个数
for (int i = 0; i < 30; i++) {
num[arr[i]]++;
}
for (int i = 0; i < 10; i++) {
System.out.println(i + "的个数为:" + num[i]);
}
}
}
第6题:
本题也没有规定具体的数,所以同样可以采用第五题中随机数的方法,这里共创建了10个随机数,由于java中的数组一旦申请,其大小就是固定的,因此需要一个新的比原数组大的数组来辅助插入,也可以用列表的方法
数组方法:
import java.util.Arrays;
import java.util.Random;
public class Code1 {
public static void main(String args[]) {
int[] arr = new int[9];
Random rand = new Random();
System.out.println("排序前的9个数字为:"); //首先创建9个随机数
for (int i = 0; i < 9; i++) { //随机创建9个0~30的随机数
arr[i] = rand.nextInt(31);
System.out.print(arr[i] + " ");
}
Arrays.sort(arr);
System.out.println("
排序后的数组为:");
for (int i = 0; i < 9; i++)
System.out.print(arr[i] + " ");
int n = rand.nextInt(31); //再创建一个数字
System.out.println("
待插入的数字为:" + n);
int[] arr2 = insert(n, arr); //将数字插入数组
System.out.println("插入后的数组为:");
for (int i = 0; i < 10; i++)
System.out.print(arr2[i] + " ");
}
public static int[] insert(int n, int[] arr) {
int index = 9; //数组索引最大值,当n比数组中所有数都大时,index不会在下面for循环中被改变
for (int i = 0; i < 9; i++) {
if (n <= arr[i]) {
index = i;
break;
}
}
int[] arr2 = new int[10]; //java中的数组是定长的,一但申请就无法改变其大小,插入数据之后,原数组无法容纳新数组,就需要另一个来将原数组中所有的数及插入的数容纳进去
for (int i = 8; i >= index; i--) { //后移
arr2[i + 1] = arr[i];
}
for (int i = 0; i < index; i++) {
arr2[i] = arr[i];
}
arr2[index] = n;
return arr2;
}
}
列表方法:
import java.util.Random;
import java.util.ArrayList;
import java.util.Collections;
public class Test {
public static void main(String args[]) {
ArrayList<Integer> arr = new ArrayList<Integer>(); //创建一个列表
Random rand = new Random();
System.out.println("排序前的9个数字为:"); //首先创建9个随机数
for (int i = 0; i < 9; i++) { //随机创建9个0~30的随机数
arr.add(rand.nextInt(31));
System.out.print(arr.get(i) + " "); //get()方法用来访问ArrayList中的指定的元素
}
Collections.sort(arr); //对列表进行排序
System.out.println("
排序后的列表为:");
for (int i = 0; i < 9; i++)
System.out.print(arr.get(i) + " ");
int n = rand.nextInt(10);
System.out.println("
待插入的数字为:" + n);
insert(n, arr); //将数字插入数组
System.out.println("插入后的列表为:");
for (int i = 0; i < 10; i++)
System.out.print(arr.get(i) + " ");
}
public static void insert(int n, ArrayList<Integer> arr) {
int index = 9; //列表索引最大值,当n比数组中所有数都大时,index不会在下面for循环中被改变
for (int i = 0; i < 9; i++) {
if (n <= arr.get(i)) {
index = i;
break;
}
}
arr.add(0); //随便添加一个数,让arr增加一个空间
for (int i = 8; i >= index; i--) { //后移
arr.set(i+1,arr.get(i)); //set()方法用于替换动态数组中指定索引的元素
}
arr.set(index,n);
}
}