zoukankan      html  css  js  c++  java
  • poj1730

    题意:求一个32位整数n写成整数幂的形式,指数最大是多少。

    分析:首先结果不超过32。从大到小枚举即可。用pow函数,pow函数可以开方,例如求n开i次方,可以改为求n的1/i次幂。一定要写精度,否则wa

    View Code
    #include <iostream>
    #include
    <cstdio>
    #include
    <cstdlib>
    #include
    <cstring>
    #include
    <cmath>
    usingnamespace std;

    #define eps 1.0e-12

    longlong n;

    void work()
    {
    bool fu =false;
    if (n <0)
    {
    fu
    =true;
    n
    =-n;
    }
    for (int i =32; i >=1; i--)
    if (!fu || (fu && (i &1)))
    {
    double a = pow(double(n), 1.0/ i);
    longlong x = a;
    if (abs(a - x) < eps || abs(a - x -1) < eps)
    {
    printf(
    "%d\n", i);
    return;
    }
    }
    }

    int main()
    {
    //freopen("t.txt", "r", stdin);
    while (scanf("%lld", &n), n)
    work();
    return0;
    }
  • 相关阅读:
    浅拷贝和深拷贝问题
    指针遍历数组时用法
    一维数组和指针
    leetcode
    tmux
    git
    einsum详解
    spark快速大数据分析 读书笔记
    maven配置
    bash 学习笔记
  • 原文地址:https://www.cnblogs.com/rainydays/p/2079846.html
Copyright © 2011-2022 走看看