社区
C++ 语言
帖子详情
C++编程判断一个数是否是平方数,如25为是平方数!!
xiamin
2006-02-20 11:30:01
判断一个数是否是平方数,如25为是平方数!!
...全文
4239
25
打赏
收藏
C++编程判断一个数是否是平方数,如25为是平方数!!
判断一个数是否是平方数,如25为是平方数!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nicky1981
2006-02-22
打赏
举报
回复
证明:
1+3+5+7+...+(2n-1)
= (1+(2n-1) ) * n / 2
= 2n * n / 2
= n*n
----------
不错
Dogfish
2006-02-22
打赏
举报
回复
3
(int)sqrt(num)*(int)sqrt(num) == num
tacittui
2006-02-22
打赏
举报
回复
初中学的
a^2 - b^2 == (a+b)*(a-b)
还说要用归纳法,实在是太搞笑了
NoInfoNoFear
2006-02-22
打赏
举报
回复
证明:
1+3+5+7+...+(2n-1)
= (1+(2n-1) ) * n / 2
= 2n * n / 2
= n*n
Darkay_Lee
2006-02-22
打赏
举报
回复
用计算机来判断浮点数确实是个问题。
另外,提醒一下考虑效率的各位,sqrt所花的时间不是可以忽略不计的:)
Zricepig
2006-02-22
打赏
举报
回复
平方数是针对整数域来说的
不存在说0.25是平方数的概念吧
crystal_heart
2006-02-21
打赏
举报
回复
bool IsSqrt( int n )
{
int i = 1;
while( n>0 )
{
n -= i;
i += 2;
}
return 0==n ? true : false;
}
weilong122
2006-02-21
打赏
举报
回复
在循环内尽量少作判断是考虑到效率的原故吧?
weilong122
2006-02-21
打赏
举报
回复
zh2817() ,Darkay_Lee() 俩位的做法都很好,感谢!!!!
Darkay_Lee
2006-02-21
打赏
举报
回复
改进了一下,不在循环里面做太多判断:
int main(void)
{
int n;
cin >> n;
int sum = 0;
for(int i=1; ; i+=2)
{
sum += i;
if(sum >= n)
{
break;
}
}
if(sum == n)
cout << "yes" << endl;
else
cout << "no" << endl;
}
Darkay_Lee
2006-02-21
打赏
举报
回复
to:jiajun2001(嘉俊)
不需要归纳发啦:
1+3+...+(2n-1),共n个数,求和公式是:
((1+(2n-1)) * n)/2 == n*n
因此你的命题正确。
利用此命题的结果得到的算法如下:
#include <iostream>
using namespace std;
int main(void)
{
int n;
cin >> n;
int sum = 0;
for(int i=1; ; i+=2)
{
sum += i;
if(sum == n)
{
cout << "yes";
break;
}
else if(sum > n)
{
cout << "no";
break;
}
}
}
罗嘉贇
2006-02-21
打赏
举报
回复
请考虑一下double 到 int的误差
zh2817
2006-02-21
打赏
举报
回复
程序如下:
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
int n;
int m;
cout<<"请输入:";
cin>>n;
cout<<endl;
m = sqrt(n);
if(m * m == n)
cout<<"是平方数"<<endl;
else
cout<<"不是平方数"<<endl;
}
uncleAndyChen
2006-02-21
打赏
举报
回复
答案都有了,就只好UP一把了
sankt
2006-02-21
打赏
举报
回复
对于给定一个整数N
定义一个整型数M
int M = sqrt(N);
然后判断
if(M*M == N)
则N是平方数;
else
N不是平方数;
//=========
正解
Jagen在路上
2006-02-21
打赏
举报
回复
楼上的利用了数学归纳法,但是需要证明才可使用。
EarthKing
2006-02-21
打赏
举报
回复
1 = 1
4 = 1 + 3
9 = 1 + 3 + 5
16 = 1 + 3 + 5 + 7
25 = 1 + 3 + 5 + 7 + 9
36 = 1 + 3 + 5 + 7 + 9 + 11
....
chon81
2006-02-21
打赏
举报
回复
floor(sqrt(num))*floor(sqrt(num)) == num
xiaocai0001
2006-02-21
打赏
举报
回复
想干什么啊?
对于给定一个整数N
定义一个整型数M
int M = sqrt(N);
然后判断
if(M*M == N)
则N是平方数;
else
N不是平方数;
EarthKing
2006-02-21
打赏
举报
回复
数学归纳法....这个是数学书上的公式还需要再证明么....-_-
加载更多回复(5)
自守
数
C++
实现
/*任意输入
一个
自然
数
,
判断
其是否为自守
数
,并输出相应的信息。自守
数
的定义为:
一个
自然
数
其本身
平方
后的
数
的尾
数
等于这个
数
本身。例如:
25
×
25
=6
25
,76×76=5776。*/
c++
100例题
2. 条件
判断
:if语句检查
平方
根的
平方
是否等于原
数
,以
判断
是否为完全
平方
数
。 3. 范围遍历:在一定范围内搜索符合条件的
数
。 代码分析:通过循环遍历1到100000的整
数
,对每个
数
检查其加100和加268后是否都是完全...
c /
c++
语言经典摘抄100例
这是
一个
寻找特定整
数
的问题,该整
数
加上100和168后分别是
一个
完全
平方
数
。程序通过循环遍历1到10万的整
数
,使用sqrt函
数
计算
平方
根,并检查其
平方
是否等于原
数
加上特定值。这展示了
数
学函
数
的使用和条件
判断
在
数
值...
【算法设计与分析】整
数
拆分找完全
平方
数
算法实现:最小拆分次
数
求解方法探讨
否则,从低位开始逐步拆分整
数
,每次取一位或多位进行检查,
判断
拆分后的各部分是否为完全
平方
数
。如果找到完全
平方
数
,则将其累加,直到完成整个
数
的拆分。文中提供了详细的
C++
代码示例,展示了如何通过循环和条件...
c++
经典算法43例
通过`sqrt()`函
数
获取
平方
根,再
平方
与原
数
比较,
判断
是否为完全
平方
数
。找到满足条件的i值后,即为所求的整
数
。 **程序4** 的目标是计算输入日期在当年的第几天。对于此类问题,需要考虑不同月份天
数
的变化,特别...
C++ 语言
65,192
社区成员
250,525
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章