A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我的专属 中级黑马   /  2014-3-13 01:37  /  915 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

随机生成10个1-100之间的数放到ArrayList中,要求这10个数不能重复,并且都是偶数(添加10次,可能循环很多次。)

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

3 个回复

倒序浏览
加判断。
回复 使用道具 举报
你可以先定义两个函数 IsEven() 和 IsRepeat() 分别判断 一个数是否为偶数,这个数在ArrayList中是否重复;
然后再主函数中设置一个循环,当达到10个数时退出;
循环体中 ,先生成一个随机数,判断它是否为偶数,如果是偶数再做下一步判断,看它在ArryList中是否已经重复,两道关卡都通过就Add()这个数;否则重新生成。具体代码如下:
  1. //判断是不是偶数
  2. public static bool IsEven(int number)
  3.         {
  4.             if (number % 2 == 0)
  5.             {
  6.                 return true;
  7.             }
  8.             else
  9.             {
  10.                 return false;
  11.             }
  12.         }
复制代码

  1. //判断是否重复
  2. public static bool IsRepeat(ArrayList array, int number)
  3.         {
  4.             if (array.IndexOf(number) != -1)
  5.             {
  6.                 return true;
  7.             }
  8.             else
  9.             {
  10.                 return false;
  11.             }
  12.         }
复制代码

  1. static void Main(string[] args)
  2.         {
  3.             ArrayList arrayList = new ArrayList();
  4.             Random ran = new Random();
  5.             int i = 0;
  6.             while(i < 10)  //因为要输入10个数,用i控制个数,达到十个跳出循环
  7.             {
  8.                 int number = ran.Next(1, 100); //产生一个随机数

  9.                 if (IsEven(number)) //如果随机数为偶数则继续执行,否则重新生成随机数再判断
  10.                 {
  11.                     if (IsRepeat(arrayList, number)) //如果重复则重新生成随机数,否则添加到ArrayList中
  12.                     {
  13.                         continue;  //返回while循环开始
  14.                     }
  15.                     else
  16.                     {
  17.                         arrayList.Add(number);
  18.                     }
  19.                 }
  20.                 else
  21.                 {
  22.                     continue;
  23.                 }

  24.                 i++;
  25.             }

  26.             foreach (int a in arrayList) //遍历并打印输出
  27.             {
  28.                 Console.WriteLine(a);
  29.             }

  30.             Console.ReadLine();
  31.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报 1 0
1、使用new random.next循环产生1到10的树
2、在循环中判断这个数与上一个数是否为相同的数并且判断是否为偶数  是则输出 不是重新生成
3、将这些生成的数添加进集合
4、遍历整个集合
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马