|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#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--;
}
}
其实就是一个简单的枚举问题。。
鉴于看到你的代码略微麻烦。。
我自己擅做主张给你写了一个。。
#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;
}
|
|