C#迷你猜数实例分析
作者:傻瓜闲扯蛋 发布时间:2023-11-02 16:10:49
标签:C#,猜数
本文实例讲述了C#迷你猜数。分享给大家供大家参考。具体如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 迷你猜数
{
class Program
{
static void Main(string[] args)
{
List<int> LisData = GetData();
LisData = FilterData(LisData, 4659, 0, 1);
LisData = FilterData(LisData, 8763, 0, 1);
LisData = FilterData(LisData, 1035, 0, 1);
LisData = FilterData(LisData, 3249, 1, 1);
LisData = FilterData(LisData, 0497, 0, 2);
LisData = FilterData(LisData, 9148, 0, 2);
foreach(var num in LisData)
{
Console.WriteLine(num);
}
Console.ReadKey();
}
/// <summary>
/// 获取所有可用数据
/// </summary>
/// <returns></returns>
private static List<int> GetData()
{
List<int> LisData = new List<int>();
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
for (int k = 0; k < 10; k++)
{
for (int m = 0; m < 10; m++)
{
if((i!=j) && (i!=k) && (i!=m) && (j!=k) && (j!=m) && (k!=m))
{
LisData.Add(i * 1000 + j * 100 + k * 10 + m);
}
}
}
}
}
return LisData;
}
private static List<int> FilterData(List<int> LisData,int Num,int a,int b)
{
List<int> lisDataNum=new List<int>();
int[] LisNum = new int[4];
//将Num拆分成一个数组
int[] Numnum = SplitNum(Num);
foreach(var Data in LisData)
{
int aNum = 0;
int bNum = 0;
//将Data拆分成一个数组
LisNum = SplitNum(Data);
#region 求a,b的个数
for (int i=0;i<4;i++)
{
//求a的个数
if(Numnum[i]==LisNum[i])
{
aNum++;
}
//求b的个数
for(int j=0;j<4;j++)
{
if(Numnum[i]==LisNum[j])
{
bNum++;
}
}
}
bNum -= aNum;
#endregion 求a,b的个数
//判断a,b
if((aNum==a)&&(bNum==b))
{
lisDataNum.Add(Data);
}
}
return lisDataNum;
}
/// <summary>
/// 拆分四位数
/// </summary>
/// <param name="Num"></param>
/// <returns></returns>
private static int[] SplitNum(int Num)
{
int[] Numnu = new int[4];
for (int i = 0; i < 4; i++)
{
Numnu[i] = Num % 10;
Num = Num / 10;
}
return Numnu;
}
}
}
希望本文所述对大家的C#程序设计有所帮助。


猜你喜欢
- 前言:微信公众号提供了用户和用户组的管理,我们可以在微信公众号官方里面进行操作,添加备注和标签,以及移动用户组别,同时,微信公众号提供了相应
- 一、获取某年某月的天数1.在实现日期类的过程中,日期加减天数的应用场景一定会频繁使用到这个函数接口,因为加减天数会使得月份发生变化,可能增月
- java 实现MD5加密算法的简单实例实现代码:import java.security.NoSuchAlgorithmException;
- 编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。在软件开发系统中,**“方法的请求者
- 在C#中,如果在方法参数前面加上ref关键字,说明参数传递的是引用,而不是值。如何理解呢?参数是简单类型的例子static void Mai
- 什么是零拷贝?零拷贝(英语: Zero-copy)技术是指计算机执行操作时,CPU不需要先将数据从某处内存复制到另一个特定区域。这种技术通常
- 本文实例讲述了winform中的ListBox和ComboBox绑定数据用法。分享给大家供大家参考。具体实现方法如下:本例实现将集合数据绑定
- Json格式是常见的读写形式。读写Json文件也是常用的操作。这次来实践一下Json文件的读写。首先在SD卡上的读写权限是一定要申请的。那么
- 在 Java 中,方法调用一般通过 Virtual Call 还有 Classic Call。Classic Call 就是直接指向方法的地
- < application /> :应用的声明。 这个元素包含了子元素,这些子元素声明了应用的组件,元素的属性将会影响应用下的所
- 一、问题在平时的业务模块开发过程中,难免会需要做一些全局的任务、缓存、线程等等的初始化工作,那么如何解决这个问题呢?方法有多种,但具体又要怎
- 那么什么是性能测试,它与功能测试有什么样的区别?性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测
- 本文实例为大家分享了Unity UI实现拖拽旋转的具体代码,供大家参考,具体内容如下跟随鼠标旋转第一种效果是跟随鼠标旋转,原理是计算下鼠标位
- “读多写少”是大部分项目的一个特点。例如“购物”,总是看的人
- Spring Boot 2.x 已经发布了很久,现在 Spring Cloud 也发布了 基于 Spring Boot 2.x 的 Finc
- Intent应该算是Android * 有的东西。你可以在Intent中指定程序要执行的动作(比如:view,edit,dial),以及程序执
- 本文实例为大家分享了JavaFX实现简单日历效果的具体代码,供大家参考,具体内容如下1.先看效果:2.代码:1)ClockEdge.java
- 网上查找资料要么是细节不够失败要么是根本没用也不需要这么复杂,在这里总结一下本人在宝塔部署前端和后端的方法。1.在宝塔上添加站点&u
- ArrayList实现班级信息管理系统,供大家参考,具体内容如下代码如下:import java.util.*;public class D
- 本文实例讲述了Java编程实现统计一个字符串中各个字符出现次数的方法。分享给大家供大家参考,具体如下:import java.util.It