您的位置:首页 > 其它

判断一个自然数是否是某个数的平方

2014-06-26 11:05 253 查看
方法1:

i从1到2/m开始,一次遍历,判断i*i是否等于m。

#include<iostream.h>

void main()
{
int m=34,tmp=0;

for(int i=1;i<=m/2;i++)
if(i*i==m)
{
tmp=1;
cout<<m<<"是"<<i<<"的平方"<<endl;
}

if(tmp==0)
cout<<m<<"没有平方根"<<endl;

}
---------------------------------------------------------------------------------------------------------------------------------------------

方法2:

二分查找法

#include<iostream.h>

void search(int m,int start,int end)
{

int mid=(start+end)/2;
if(mid==start||mid==end)  //判断中间值是不是等于前后两个值,防止死循环
cout<<m<<"没有平方根"<<endl;
else
{
if(mid*mid==m)
cout<<m<<"是"<<mid<<"的平方"<<endl;
else if(mid*mid>m)
search(m,start,mid);
else
search(m,mid,end);
}

}

void main()
{
int m=4;

search(m,1,m);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: