zoukankan      html  css  js  c++  java
  • POJ 1001

    关键是处理好前导零和小数点末尾多余的零。

    几组数据:

    1.0000 1
    10.000 1
    10.000 2
    0000.1 1
    000001 1

    输出:

    1
    10
    100
    .1
    1

    # include <iostream>
    # include <cstring>
    # include <cctype>
    
    char base[10];
    int n;
    
    void solve(void)
    {
        int point = 0;
        for ( ; base[point]!='.'; ++point) ;
        point = (5-point) * n;
        int b = 0;
        for (int i = 0; base[i] ; ++i) {
            if ( isdigit(base[i]) ) b = b*10 + (base[i]-'0');
        }
        if (b == 0) {
            std::cout << 0 << std::endl;
            return ;
        }
        char ans[300];
        memset(ans, 0, sizeof(ans));
        ans[0] = 1;
        for (int i= 0; i < n; ++i) {
            int carry = 0;
            for (int j = 0; j < 300; ++j) {
                int tmp = ans[j] * b + carry;
                carry = tmp / 10;
                ans[j] = tmp % 10;
            }
        }
        int i, j;
        for (i = 300-1; ans[i] == 0; --i) ;
        for (j = 0; j<point && ans[j] == 0; ++j);
        if (point > i) {
            std::cout << '.';
            for (int k = point-1 ; k > i; --k) std::cout << '0';
        }
        for ( ; i >= j; --i) {
            ans[i] += '0';
            std::cout << ans[i];
            if (i == point && point != j) std::cout << '.';
        }
        std::cout << std::endl;
    }
    
    int main()
    {
        while (std::cin >> base >> n) {
            solve();
        }
    
        return 0;
    }
  • 相关阅读:
    kail
    scp命令
    搭建LNMP
    PHP7.3.2安装
    nginx的安装
    CentOS7部署NFS
    Linux使用mailx通过外部smtp发邮件
    kickstart自动化安装
    centos7下单用户模式,救援模式的应用以及虚拟机下的克隆
    putty和xsheel远程连接centos7
  • 原文地址:https://www.cnblogs.com/txd0u/p/3375863.html
Copyright © 2011-2022 走看看