111,092
社区成员




/// <summary>
/// 看数num是否包含A
/// </summary>
/// <param name="A">1、2、4、8、16、32、64、128中任意一个数</param>
/// <param name="num">任意整数</param>
/// <returns>true-包含;false-不包含</returns>
private bool ifNumContrainA(int A, int num)
{
return (A & num) == A;
}
class Tests
{
[Flags]
enum Options
{
A = 1,
B = 2,
C = 4,
D = 8,
E = 16,
F = 32,
G = 64,
H = 128,
}
static bool HasOption(Options options, Options option)
{
return (options & option) == option;
}
static bool HasBit(int number, int bit)
{
return (number & bit) == bit;
}
static void Main(string[] args)
{
bool hasE = HasOption((Options)29, Options.E); // hasE = true
bool has16 = HasBit(29, 16); // has16 = true;
}
}
private int intDinVuale;
private int[] intArr = { 1, 2, 4, 8, 16, 0 };
private int[] intArrSum;
private void Find()
{
intDinVuale = 29
intArrSum = new int[5];
for (int y = 0; y < 6; y++)
{
for (int u = 1; u < 6; u++)
{
for (int i = 2; i < 6; i++)
{
for (int o = 3; o < 6; o++)
{
for (int p = 4; p < 6; p++)
{
if (intDinVuale == intArr[y] + intArr[u] + intArr[i] + intArr[o] + intArr[p])
{
intArrSum[0] = intArr[y];
intArrSum[1] = intArr[u];
intArrSum[2] = intArr[i];
intArrSum[3] = intArr[o];
intArrSum[4] = intArr[p];
}
}
}
}
}
}
for (int i = 0; i < 5; i++)
{
if (intArrSum[i] == 16)
{
//找到16
}
if (intArrSum[i] == 8)
{
//找到8
}
if (intArrSum[i] == 4)
{
//找到4
}
if (intArrSum[i] == 1)
{
//找到1
}
}
}
}
使用了一个笨方法!