import java.util.Scanner;
public class MA{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int cnt=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i+1;j++){
System.out.printf("%4d",cnt++);
}
System.out.println();
}
}
}
你这个的时间复杂度为O(n^2)了,用下面的代码试一下:下面的代码时间复杂度为O(n)
import java.util.Scanner;
public class MA {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = (n+1)*n/2;//数字总个数
int k = 1;
for(int i = 1; i <= m; i++){
if(k == n){
System.out.printf("%4d\n", i);
k = 1;
n--;
}else{
System.out.printf("%4d", i);
k++;
}
}
}
}