回 帖 发 新 帖 刷新版面

主题:初学者,请教高手

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
#include "math.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
  { x=sqrt(i+100);   /*x为加上100后开方后的结果*/
   y=sqrt(i+268);   /*y为再加上168后开方后的结果*/
    if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
     printf("\n%ld\n",i);
  }
}

问题:在这个例程中,如果将第8行x*x改成x^2,y*y改成y^2就得不到正确结果,请问这两种写法有什么不同,为什么可以这么写?

回复列表 (共6个回复)

沙发

x*x是语法,x^2是数学惯用表达式而已

板凳


那为什么值会不同呢?

3 楼

因为在C/C++里,a^2代表整数a与整数2进行按位异或:)

4 楼


这些都是语法问题,C++、C编译器对于数运算都有自己的语法的,你得好好向那些基础好的人请教。

5 楼


在C语言里x^2不是x的平方

6 楼

请教?还不如好好看看书。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册