首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# int部类

2012-09-10 
C# int类型1、找出111111111 – 999999999中符合以下条件的9位数,9位数的中间三位是前三位的2倍,最后三位是

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;        } 

热点排行