00na78i58a 发表于 2016-6-7 06:39:55

华为笔试题:实现一个5*5的数阵

  题目:随便给你一串无顺序的数字,编程实现如下输出:
  26      148     250     304     426
  
26      152     259     317     438
  
99      193     263     359     440
  
120     209     267     411     455
  
128     212     275     424     459
  
  
525     706     788     944
  
540     735     815     961
  
569     739     820     985
  
587     754     826
  
680     780     831
  题目大概就是这个意思,我的代码实现如下
  import java.util.*;
class Test
  {
 public static void main(String[] args)
 {
  System.out.print("请输入你要输入多少个数(限制在1000个之内)");
  Scanner input = new Scanner(System.in);
  Random rand = new Random();
  int length = input.nextInt();
  int[] arr = new int;
  for (int i =0;i<length ;i++ )
  {
   arr=rand.nextInt(1000);
  }
  for (int i =0;i<length-1 ;i++ )
  {
   for (int j=0;j<length-i-1 ;j++ )
   {
    if(arr>arr)
     arr=arr+(arr=arr)*0;
   }
  }
  double cols = Math.ceil(length/5.0);//得到能分成几列
  double rows = Math.ceil(length/25.0)*5;//得到能分成几行
  int index = 0;
  int nextIndex =0;
  for (int i=0; i< rows;i++ )
  {
   if(i<5){
    index=i;
   }else if(i>=5){
    if(i%5==0){
     System.out.println("\n");
     nextIndex=i*5;
    }
    index = nextIndex++;
   }
   for (int j = 0; j< 5;j++ )
   {
    if(index<length){
     System.out.print(arr+"\t");
     index+=5;
    }
   }
   System.out.println("\n\n");   
  }
 }
}
页: [1]
查看完整版本: 华为笔试题:实现一个5*5的数阵