理想小青年 发表于 2018-4-5 21:43:12

经典完全平方根问题 思路求助

#include <stdio.h>

/*思路一:完全平方根的简单个人认为 如1*1,2*2,3*3....简单认为自身*自身的数,末位数0,1,4,,5,6,9*/
/*思路二:math.h这个上面有函数可直接开方*/
/*经典原题:一个10W以内的数加上100可以开方,这个数+268还能开方,这个数是多少    */
/*思路二已经实现思路一有BUG */

void main()
{
        int a,i,l;
        i = 100000;/*i等于十万 i自减*/
        while(i>0)
        {
                a = i*i+100; /*i+100开方*/
                while(i>0) /*a已经等于i*i+100,那么循环十万以内的 */
                {
                        if(a = i*i);/*如果10W以内有 加过100(a)后还能 i*i相等*/
                        {
                                printf("%d",a);
                                a = i+268;        /*i+268开方*/
                                break;
                                l = 100000;/*每次都循环10以内的数字*/
                                while(l>0)
                                {
                                        if(a = i*i)/*如果10W以内 还能被加268那个数相等 就输出*/
                                        {
                                                printf("%d",a);
                                                break;
                                        }
                                        i--;
                                }
                        }
                        i--;
                }
                i--;
        }
}

理想小青年 发表于 2018-4-5 21:43:59

死循环 break只是调试时候做的跳出添加的{:10_245:}

BngThea 发表于 2018-4-5 21:51:42

你先把if中的=换成==再说

Rocky0429 发表于 2018-4-5 22:07:10

其实就是一个简单的枚举问题。。
鉴于看到你的代码略微麻烦。。
我自己擅做主张给你写了一个。。

#include <stdio.h>
#include <math.h>

typedef long long LL;

int main()
{
    LL x,y,i;
    for( i = 0; i < 100010; i++ ){
      x = sqrt(i + 100);
      y = sqrt(i + 268);

      if( (x * x == i + 100) && (y * y == i + 268 ) )
            printf("i == %lld\n",i);
    }
    return 0;
}

理想小青年 发表于 2018-4-6 08:49:28

BngThea 发表于 2018-4-5 21:51
你先把if中的=换成==再说

谢谢- - 我是手打上去的 改了还死循环

理想小青年 发表于 2018-4-6 08:50:36

Rocky0429 发表于 2018-4-5 22:07
其实就是一个简单的枚举问题。。
鉴于看到你的代码略微麻烦。。
我自己擅做主张给你写了一个。。


谢谢 你代码写的漂亮用math.h中sqrt循环我也做出了 可是思路一行不通- -

BngThea 发表于 2018-4-6 11:28:40

理想小青年 发表于 2018-4-6 08:49
谢谢- - 我是手打上去的 改了还死循环

第一个i--应该是大写的I吧

理想小青年 发表于 2018-4-7 09:50:33

代码可能手打上去了 有些问题 但是大佬们 思路对不对呢 对于这个数学公式来说 这种思路对不对 是不是这样嵌套循环呢{:10_266:}
思路为主 代码为辅
页: [1]
查看完整版本: 经典完全平方根问题 思路求助