zoukankan      html  css  js  c++  java
  • 一个简单的算法,定义一个长度为n的数组,随机顺序存储1至n的的全部正整数,不重复。

    前些天看到.net笔试习题集上的一道小题,要求将1至100内的正整数随机填充到一个长度为100的数组,求一个简单的算法。

    今天有空写了一下。代码如下,注释比较详细:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Text.RegularExpressions;
     6 
     7 namespace TestNumber
     8 {
     9     class Program
    10     {
    11         //定义判断正整数的正则表达式
    12         public static string regex = "^[1-9][0-9]*";
    13         static void Main(string[] args)
    14         {
    15 
    16             Console.WriteLine("please input a number!");
    17             string InputStr = Console.ReadLine();
    18             //判断输入是否正整数,不是的话,结束方法
    19             if (!Regex.IsMatch(InputStr,regex))
    20             {
    21                Console.WriteLine("input format error !");
    22                return;
    23             }
    24             //转换整形
    25             int InputNum=Convert.ToInt32(InputStr);
    26             
    27             //创建整形集合,将1至n放置集合
    28             List<int> NumList = new List<int>();
    29             for (int j = 1; j < InputNum+1; j++)
    30             {
    31                 NumList.Add(j);
    32             }
    33             //定义一个随机数实例
    34             Random R=new Random();
    35             int[] OutputNum = new int[InputNum];
    36             for (int i = 0; i < InputNum; i++)
    37             {
    38                 //获取集合的随机一个元素
    39                 int k = R.Next(0, InputNum-i);
    40                 //将元素放置数组
    41                 OutputNum[i] = NumList[k];
    42                 //集合移除该元素
    43                 NumList.RemoveAt(k);
    44             }
    45             foreach (var i in OutputNum)
    46             {
    47                 Console.Write(i+",");
    48             }
    49 
    50         }
    51     }
    52 }

    测试异常结果如下:

    测试正常结果如下:

    ok,that‘s all.

  • 相关阅读:
    sql 笔记之一
    js的Location
    VS无法使用.XXXX附加到程序
    C#遍历对象的方法
    解决tomcat启动时中文乱码问题。
    动态sql foreach 循环报错问题
    java跳过https证书直接请求工具类
    安装svn报2503错误处理方法
    oracle常用的一些查询命令
    Oracle11g安装过程中忘记进行口令配置
  • 原文地址:https://www.cnblogs.com/mengsx/p/4119101.html
Copyright © 2011-2022 走看看