package s1; import java.util.Scanner; //题目:将一个数组逆序输出。 public class Fs31 { public static void main(String[] args){ System.out.println("请输入一个不多于10位的正整数"); int [] a=new int[10]; Scanner sc=new Scanner(System.in); for (int i= 0;i<10;i++){ a[i]=sc.nextInt();} int temp=0; for (int i = 0;i <9;i ++){ for (int j=0;j<9-i;j++){ if (a[j]>a[j+1]){ temp = a[j]; a [j]=a[j+1]; a[j+1]=temp ; } } } for (int i=9;i>=0;i--){ System.out.print(" "+a[i]); } } }
其他写法
public static void main(String[] args) { int[]arrA={1,3,44,22,77,99}; int[]arrB=newint[arrA.length]; int j=arrA.length; for (inti = 0; i < arrA.length; i++) { arrB[i]=arrA[j-1]; j--; } System.out.println("数组A逆序输出为:"+Arrays.toString(arrB)); }
package s1; //题目:取一个整数a从右端开始的4~7位。 import java.util.Scanner; public class Fs32 { public static void main(String[] args){ System.out.println("请输入一个多于7位的正整数"); Scanner sc=new Scanner(System.in); String [] a=sc.nextLine().split(""); System.out.println("长度是:"+a.length); for(int i=a.length-1;i>=0;i--){ if (a.length>=7){ System.out.print(a[3]+a[4]+a[5]+a[6]); break; }else { System.out.println("输入长度不足7位"); } } } } 其他写法 System.out.println("输入一个整数:"); Scanner scanner=new Scanner(System.in); long num=scanner.nextLong();//获取输入 String str=Long.toString(num);//把数字转化为String类型的 char[]ch=str.toCharArray();//把String类型的字符,转化为char类型,每一个数字赋值到字符型数组中 int n=ch.length;//字符型数组的长度 System.out.println("该整数从右端开始的4-7位为:"+ch[n-7]+ch[n-6]+ch[n-5]+ch[n-4]);//输出结果 scanner.close();//关闭输入流 }
package s1; import java.util.Arrays; //题目:打印出杨辉三角形(要求打印出10行如下图) public class Fs33 { public static void main(String[] args) { int [][]a=new int[10][10]; for (int i=0;i<a.length;i++){ a[i][0]=1;} for (int i=1;i<a.length;i++){ for (int j=1;j<a.length;j++) { a[i][j]=a[i-1][j-1]+a[i-1][j]; } } for (int i=0;i<a.length;i++){ for (int j=0;j<a.length;j++){ if (a[i][j]!=0){ System.out.print(a[i][j]+" "); } }System.out.println(" "); } } }
其他写法
程序分析:
1
- 1
1 1
1 2 1
- 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1、二维数组的使用
2、第一列的数都是1
3、使用两个for循环,i控制行,j控制列;
从第二行第二列起arr[i][j]=arr[i-1][j-1]+arr[i-1][j]
public static void main(String[] args) {
int[][]arr=newint[10][10];
for (inti = 0; i < arr.length; i++) {
arr[i][0]=1;//控制第一列的数等于1
}
for (inti = 1; i < arr.length; i++) {
for (intj=1; j < arr.length; j++) {
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];//赋值
}
}
//打印结果
for (inti = 0; i < arr.length ; i++) {
for (intk = arr.length-i;k>0;k--) {//空格的控制,为了好看
System.out.print(" ");
}
for (intj = 0; j < arr.length; j++) {//打印出数组的数字
if (arr[i][j]!=0) {//把把没赋值的零去掉
System.out.print(arr[i][j]+" ");
}
}
System.out.println();//控制换行
}
}
}