日期:2014-05-18  浏览次数:20840 次

输入一个整数,与另一个整数相乘使乘积由0,1组成,求这个整数最小值
我是这么写的,有些0的情况没考虑:

  int num1 = Convert.ToInt32(Console.ReadLine());
  int num2 = 1;
  while (true)
  {
  long result = Math.BigMul(num1, num2) ;
  Regex r = new Regex(@"^(0|1)+$");
  if (r.IsMatch(result.ToString()))
  {
  Console.WriteLine(num2.ToString());
  return;
  }
  num2++;
  }

  但是这样循环会造成装箱操作。有木有数学方法可以解决啊?分不多啊,谢谢朋友了。

------解决方案--------------------
你的装箱是指:result.ToString();num2.ToString(); 如果是这样的话,那也没有什么关系的,这样的应该影响不大的。