• 一个简单的算法,定义一个长度为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.

  • 相关阅读:
    上周热点回顾(3.13.7)
    博客园电子期刊2010年1月刊发布啦
    博客园电子期刊2010年2月刊发布啦
    上周热点回顾(2.222.28)
    Android 专题上线
    聊聊2010年春晚
    上周热点回顾(3.83.14)
    博客园上海俱乐部活动通知(20100320)
    上周热点回顾(2.12.7)
    博客园图灵杯第4届博问大赛(2010.2.27~2010.3.27)
  • 原文地址:https://www.cnblogs.com/mengsx/p/4119101.html
Copyright © 2020-2023  润新知