首页 > 用户发贴区 > 编程问题提问区 > 请教这个程序怎么样才对呢?
2007
06-30

请教这个程序怎么样才对呢?

   请用C编写:


  求出所有满足以下条件的四位数,其前两位数与后两位的和的平方等于该数.例:


3025=(30+25)(30+25)


#include<stdio.h>


int main(void)
{
   int i,j,k;  
   for (i=0;i<50;i++)
   {
     for(j=0;j<50;j++)
     { 
        k=i*10+k;
        if(k=((i+j)*(i+j)))
        {
         printf(“%d\n”,k);
        }    
     }
   }
return 0;
}


我想了半天自己没有想到怎么写,就在网上找到这个


可怎么运行出现的答案有很多都是不符合条件的呀,是不是那里错了,   k=i*10+k;
我也没有看懂放这个在这里是做什么用的?


请教这个程序怎么样才对呢?》有 6 条评论

  1. s88246843 说:

    #include<stdio.h>

    main()

    {

        int i,j,m,n,s;

        for(i=1;i<=9;i++)

            for(j=0;j<=9;j++)

                for(m=0;m<=9;m++)

                    for(n=0;n<=9;n++)

                     {s=i*1000+j*100+m*10+n;

                     if (((i*10+j)+(m*10+n))*((i*10+j)+(m*10+n))==s)

                      printf(“%d\n”,s);}

    }

    该题一共算出3个数,你自己运行吧!

  2. 5iluo 说:

    #include <stdio.h>
    void main()
    {
     int n, a, b, sum;
     for(n=1000; n<10000; n++)
     {
      a = n/100;
      b = n – a*100;
       sum = (a+b)*(a+b);
      if (n == sum)
      {
       printf(“%d “, n);
      }
     
     }
    }

    这个容易理解吧!!

  3. yangyugfan 说:

    寒1楼的嵌套

  4. xstar 说:

    楼主找到的程序的思路是对的,不过中间有点错误!
    该算法的思路是分别找前两位和后两位然后计算是否符合条件!
    比如要找的数是z,前两位是x,后两位是y;
    则有如下等式
    z = x * 100 + y;
    z = (x + y) * (x + y)

    其中x的范围是10 ~ 99 //因为是4位的数.
          y的范围是0~99

    循环x和y,然后验证等式是否成立就可以了.

    [code]
    #include<stdio.h>

    int main(int argc, char* argv[])
    {
     int x,y,z;

     for (x = 10; x < 99; x++)
     {
      for (y = 0; y < 99; y++)
      {
       z = x * 100 + y;
       if (z == ((x + y) * (x+y)))
       {
        printf( "%d\n", z);
       }
      }
     }

     return 0;
    }
    [/code]

    原来的代码有如下错误
    [code]
    #include <stdio.h>

    int main(void)
    {
       int i,j,k;
       for (i=0;i<50;i++)      //循环次数错误
       {
         for(j=0;j<50;j++)    //循环次数错误
         {
            k=i*10+k;           //10应该为100
            if(k=((i+j)*(i+j))) //这里不能是=号,否则是赋值语句了!判断始终成功
            {
             printf("%d\n",k);
            }
         }
       }
       return 0;
    }
    [/code]

  5. s88246843 说:

    看到你们的程序,再看我的呵呵!我的太头晕了!哈哈!

  6. unbit 说:

    写的不错。

留下一个回复