社区
C++ 语言
帖子详情
C++编程判断一个数是否是平方数,如25为是平方数!!
xiamin
2006-02-20 11:30:01
判断一个数是否是平方数,如25为是平方数!!
...全文
4235
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例题
c++
100题
c /
c++
语言经典摘抄100例
平时再网上收集经典案例,让你知道c/
c++
的特点,明白
编程
的方法。对大家学习c/
c++
很有帮助,我就有很深的体会
【算法设计与分析】整
数
拆分找完全
平方
数
算法实现:最小拆分次
数
求解方法探讨
内容概要:本文介绍了一种解决“整
数
拆分找完全
平方
数
,拆分次
数
最少”的算法思路与实现方法。具体步骤包括:首先对输入整
数
进行开方运算,若结果的
平方
等于原
数
,则直接输出结果并结束程序;否则,从低位开始逐步拆分整
数
,每次取一位或多位进行检查,
判断
拆分后的各部分是否为完全
平方
数
。如果找到完全
平方
数
,则将其累加,直到完成整个
数
的拆分。文中提供了详细的
C++
代码示例,展示了如何通过循环和条件语句实现这一逻辑。 适合人群:对算法设计感兴趣的
编程
爱好者,尤其是有一定
编程
基础并希望提高算法思维能力的学习者。 使用场景及目标:①理解如何通过
数
学运算和
编程
技巧解决特定类型的
数
学问题;②掌握利用循环、条件
判断
等基本
编程
结构来实现复杂逻辑的方法;③学习如何优化算法以减少不必要的计算,达到最短拆分次
数
的目标。 阅读建议:读者可以先尝试自己思考解决方案,然后对比文中的算法思路,注意理解每一步操作背后的逻辑,同时也可以尝试修改代码参
数
或输入值,观察不同情况下的输出结果,加深对算法的理解。
c++
经典算法43例
这些是我用半个月的时间整理的,都是源自经典算法100例,但是源文档有很多错误和不规范之处,下面的43例中,都是经过
c++
6.0 编译器通过的。仅供参考,如果有不懂之处咱们共同探讨,我的邮箱:www.dingxiaoyao2006@126.com
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章