黑马程序员技术交流社区

标题: 一个c#算法题 [打印本页]

作者: 李朋霏    时间: 2012-7-16 00:13
标题: 一个c#算法题
以前看到的一个题,一直没有解出来。
  遍历100以内符合勾股定理的整数,并且求出符合条件的数量。(a*a+b*b=c*c)

我的解题步骤是:
{
  int a=1,b=1,c=1;
  for(a=1;a<100;a++)
  {
    for(b=1;b<100;b++)
     {
       c=int.parse(Math.sqar(a*a+b*b+c*c))
      if(c<100)
     {console.write(a,b,c);}
     }
}
但总是报错,还有求符合条件A,B,C的数量更无从下手了?
作者: 赵学辉    时间: 2012-7-16 08:05
  1. static void Main(string[] args)
  2.         {
  3.             int   zhi1,zhi2;
  4.             double xie3;
  5.             for (zhi1 = 3; zhi1 <100; zhi1++)
  6.             {
  7.                 for (zhi2 = 4; zhi2 <100; zhi2++)
  8.                 {
  9.                     
  10.                     xie3  =Math.Sqrt(zhi1*zhi1+zhi2*zhi2);
  11.                     if (xie3 <= 100)
  12.                     {
  13.                         if (xie3 - Math.Truncate(xie3) == 0)//判断是不是整数,不是整数就不要了
  14.                         {

  15.                             if (sanjiaoxing(zhi1, zhi2, Convert.ToInt32(Math.Truncate(xie3))))
  16.                             {
  17.                                 Console.WriteLine("勾股数为:{0},{1},{2}", zhi1, zhi2, xie3);
  18.                             }
  19.                         }
  20.                     }
  21.                     
  22.                 }
  23.             }

  24.             Console.ReadKey();
  25.         }
  26.         public static bool sanjiaoxing(int bian1, int bian2, int bian3)//成为三角形的判断条件,返回值为bool
  27.         {
  28.             bool zhisanjiaoxing;
  29.          if(bian1+bian2>bian3)
  30.           {
  31.               if (bian3 - bian2 < bian1)
  32.               {
  33.                   if (bian3 > bian1 && bian3 > bian2)
  34.                   {
  35.                       zhisanjiaoxing = true;
  36.                   }
  37.                   else
  38.                   {
  39.                       zhisanjiaoxing = false;
  40.                   }
  41.               }
  42.               else
  43.               {
  44.                   zhisanjiaoxing = false;
  45.               }
  46.           }
  47.          else
  48.          {
  49.              zhisanjiaoxing=false;
  50.          }

  51.          return zhisanjiaoxing;  
  52.         }

  53.     }
复制代码
这个我写的也调试了可以,可以希望你帮到你!
作者: 李朋霏    时间: 2012-7-16 10:42
不错 下面这个判断是否符合三角形的条件我是没有想到的!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2