C# int类型
1、找出111111111 999999999中符合以下条件的9位数,9位数的中间三位是前三位的2倍,最后三位是前三位的3倍,并且这9个数的每位只能是1-9,不能重复
我的思路是设int a=111;然后用循环加,没循环一次,就判断,如果a里面的数据包含1-9中任意3个数字并且不重复的话就求int b,在用if判断int b,以此再求int c;但如何判断变量的值中包含1-9并且数字不重复呢??????????
例如: int a=111;
int b=0;
int c=0;
for (a = 111; a < 999;a++ )
{
b = a * 2;
if (b >= 111 && b <= 999)
{
c = a * 3;
if(c >=111 && c<=999)
{
Console.WriteLine(a.ToString()+b.ToString()+c.ToString());
}
}
}
[解决办法]
- C# code
static void Main(string[] args) { int a = 111; int b = 0; int c = 0; for (a = 112; a < 999; a++) { b = a * 2; c = a * 3; if(CheckNumber(a) && CheckNumber(b) && CheckNumber(c)) Console.WriteLine("{0}{1}{2}", a, b, c); } Console.Read(); } private static bool CheckNumber(int number) { if (number.ToString().IndexOf("0") >= 0) return false; int bai = number / 100; int shi = number / 10 % 10; int ge = number % 10; if(bai == shi && shi == ge) return false; if (number >= 999) return false; return true; }