C#迷你猜數(shù)實例分析
更新時間:2015年03月27日 15:05:48 作者:傻瓜閑扯蛋
這篇文章主要介紹了C#迷你猜數(shù),實例分析C#操作數(shù)字及數(shù)組的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了C#迷你猜數(shù)。分享給大家供大家參考。具體如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 迷你猜數(shù)
{
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>
/// 獲取所有可用數(shù)據(jù)
/// </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拆分成一個數(shù)組
int[] Numnum = SplitNum(Num);
foreach(var Data in LisData)
{
int aNum = 0;
int bNum = 0;
//將Data拆分成一個數(shù)組
LisNum = SplitNum(Data);
#region 求a,b的個數(shù)
for (int i=0;i<4;i++)
{
//求a的個數(shù)
if(Numnum[i]==LisNum[i])
{
aNum++;
}
//求b的個數(shù)
for(int j=0;j<4;j++)
{
if(Numnum[i]==LisNum[j])
{
bNum++;
}
}
}
bNum -= aNum;
#endregion 求a,b的個數(shù)
//判斷a,b
if((aNum==a)&&(bNum==b))
{
lisDataNum.Add(Data);
}
}
return lisDataNum;
}
/// <summary>
/// 拆分四位數(shù)
/// </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#程序設(shè)計有所幫助。
相關(guān)文章
C# 利用StringBuilder提升字符串拼接性能的小例子
一個項目中有數(shù)據(jù)圖表呈現(xiàn),數(shù)據(jù)量稍大時顯得很慢,在使用了StringBuilder后效果提升很明顯,下面有例子2013-07-07
Visual C#中如何使用IComparable和IComparer接口
這篇文章主要介紹了C#中使用IComparable和IComparer接口,在本例中,該對象被用作第二個參數(shù)被傳遞給Array.Sort的接受IComparer實例的重載方法,需要的朋友可以參考下2023-04-04
C#操作Byte數(shù)組和十六進(jìn)制進(jìn)行互轉(zhuǎn)
這篇文章介紹了C#操作Byte數(shù)組和十六進(jìn)制進(jìn)行互轉(zhuǎn)的的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
C# 編碼好習(xí)慣,獻(xiàn)給所有熱愛c#的同志
c#編寫者,需要培養(yǎng)的一些好習(xí)慣2009-02-02
Unity Shader實現(xiàn)動態(tài)霧效果
這篇文章主要為大家詳細(xì)介紹了Unity Shader實現(xiàn)動態(tài)霧效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04
C# 使用 GDI+ 實現(xiàn)添加中心旋轉(zhuǎn)(任意角度)的文字
這篇文章主要介紹了C# 使用 GDI+ 實現(xiàn)添加中心旋轉(zhuǎn)(任意角度)的文字,需要的朋友可以參考下2018-04-04

