如题,代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp2 { class Program { static void Main(string[] args) { Random r = new Random(); int 红球池 = 33, 蓝球池 = 16,剩余红球=6,应选红球=6,剩余蓝球=1/*,选蓝球=1*/,t; List<string> 红球, 蓝球,选择=new List<string>(); string 预选; 红球 = 初始化(红球池).ToList(); 蓝球 = 初始化(蓝球池).ToList(); //预选红球开始 do { Console.WriteLine("输入预选红球[回车跳过]:"); 预选 = Console.ReadLine(); if(预选.Length==1) { 预选 = "0" + 预选; } if(红球.Remove(预选)) { 选择.Add(预选); 剩余红球--; } } while (预选!=""); //预选红球结束 for (int i = 0; i < 剩余红球; i++) { t = r.Next(红球.Count); r = new Random(t); 选择.Add(红球[t]); 红球.RemoveAt(t); } 选择.Sort((x, y) => x.CompareTo(y)); //预选蓝球开始 do { Console.WriteLine("输入预选蓝球[回车跳过]:"); 预选 = Console.ReadLine(); if (预选.Length == 1) { 预选 = "0" + 预选; } if (蓝球.Remove(预选)) { 选择.Add(预选); 剩余蓝球--; } } while (预选 != ""); //预选蓝球结束 for (int i = 0; i < 剩余蓝球; i++) { t = r.Next(蓝球.Count); 选择.Add(蓝球[t]); 蓝球.RemoveAt(t); } //开始输出 Console.WriteLine("红球:"); for (t = 0; t< 应选红球; t++) { Console.Write($"{选择[t]}\t"); } Console.WriteLine("\n蓝球:"); for (; t < 选择.Count; t++) { Console.Write($"{选择[t]}\t"); } Console.Write("\n\n程序结束,按任意键退出"); Console.ReadKey(); } static IEnumerable<string> 初始化(int 个数) { for (int i = 0; i < 个数; i++) { if (i < 9) { yield return "0" + (i + 1).ToString(); } else { yield return (i + 1).ToString(); } } } } }
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现