C语言实例:由两个平方三位数获得三个平方二位数

2014-11-23 20:12:42 · 作者: · 浏览: 15

  已知两个平方三位数abc和xyz,其中a、b、c、x、y、z未必是不同的;而ax、by、cz是三个平方二位数。请编程求三位数abc和xyz。


  *问题分析与算法设计


  任取两个平方三位数n和n1,将n从高向低分解为a、b、c,将n1从高到低分解为x、y、z。判断ax、by、cz是否均为完全平方数。


  *程序说明与注释


  #include


  #include


  void f(int n,float* s);


  int main()


  {


  int i,t;


  float a[3],b[3];


  print("The possible perfect squares combinations are:\n");


  for(i=11;i<=31;++i) //穷举平方三位数的取值范围


  for(t=11;t<=31;++t)


  {


  f(i*i,a); //分解平方三位数的各位,每位数字分别存入数组中


  f(t*t,b);


  if(sqrt(a[0]*10+b[0]) == (int)sqrt(a[0]*10+b[0])


  && sqrt(a[1]*10+b[1]) == (int)sqrt(a[1]*10+b[1])


  && sqrt(a[2]*10+b[2]) == (int)sqrt(a[2]*10+b[2]) )


  {


  printf("%d and %d\n,i*i,t*t"); //若三个新的数均是完全平方数,则输出


  }


  }


  }