zoukankan      html  css  js  c++  java
  • POJ NOI0105-36 计算多项式的值

    问题链接POJ NOI0105-36 计算多项式的值

    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述

    假定多项式的形式为xn+xn-1+…+x2+x+1,请计算给定单精度浮点数x和正整数n值的情况下这个多项式的值。

    输入
    输入仅一行,包括x和n,用单个空格隔开。x在float范围内,n <= 1000000。
    输出
    输出一个实数,即多项式的值,精确到小数点后两位。保证最终结果在float范围内。
    样例输入
    2.0 4
    样例输出
    31.00


    问题分析

      等比数列求和问题,需要考虑特殊情况。

      循环计算那是浮云,正解应该是根据等比数列求和的通项公式,采用快速幂计算实现,才能快速计算。

    程序说明

      (略)


    参考链接:(略)

    AC的C++语言程序:

    #include <iostream>
    #include <cstdio>
    
    using namespace std;
    
    // 快速幂函数
    float quickpower(float a, int n)
    {
        float res = 1.0;
        while(n) {
            if(n & 1L)
                res *= a;
            a *= a;
            n >>= 1;
        }
        return res;
    }
    
    int main()
    {
        float x;
        int n;
    
        cin >> x >> n;
    
        if(x == 1.0)
            printf("%.2f
    ", x * (n + 1));
        else
            printf("%.2f
    ", (quickpower(x, n+1) - 1.0) / (x - 1.0));
    
        return 0;
    }






  • 相关阅读:
    一周心得5:
    一周心得4:
    历史上两个人合作成功的案例:
    对结对编程的理解:
    一周心得3:
    一周心得2:
    有关IT行业模仿案例及自己的评价与解析:
    一周心得:
    不懂的问题:
    自我介绍以及期望与目标:
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563806.html
Copyright © 2011-2022 走看看