判断完全平方数

我的算法日常—判断完全平方数

思路

  • 先对数据a进行开方的到b
  • 之后b对其进行四舍五入,得到一个整数c
  • 当且仅当 b==c 时 c**2 == a
  • 所以就可以判断a是否为完全平方数了

分析

  • n 为存在某一整数
  • 当b < n + 0.5 时 b > c => c**2 < a
  • 当b >= n + 0.5 时 b < c => c**2 > a
  • 当b == n 时 b == c => c**2 == a
  • 所以当且仅当 c**2 == a 时 a 为完全平方数

C++代码

#include  

#include   

using namespace std;   

int main()   
{  
    int a;  
    cin>>a;  
    int b = floor(sqrt(a) + 0.5);  
    if(a == b*b) cout<

   转载规则


《判断完全平方数》 ZS 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
螺旋序列的输出 螺旋序列的输出
我的算法日常 — 螺旋数字串描述 输入n输入行列n个数字的矩阵 形如 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 螺旋递增序列 思路 螺旋递增也就是,下–左–上
2019-04-03
下一篇 
阶乘取模 阶乘取模
我的算法日常 — 超大的阶乘取模描述 输入n < 10**6 求1!+2!+…..n! 对1000000的模 思路 首先n特别大,容易超时 阶乘特别大那就每次都对1000000取模,阶乘时和最后相加都进行取模操作 试
2019-04-02
  目录