华为笔试题:实现一个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[length];
  for (int i =0;i<length ;i++ )
  {
   arr[i]=rand.nextInt(1000);
  }
  for (int i =0;i<length-1 ;i++ )
  {
   for (int j=0;j<length-i-1 ;j++ )
   {
    if(arr[j]>arr[j+1])
     arr[j]=arr[j+1]+(arr[j+1]=arr[j])*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[index]+"\t");
     index+=5;
    }
   }
   System.out.println("\n\n");   
  }
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值