• FZU 2032 Log函数问题 模拟小数加法


    题目链接:Log函数问题

    不知道为什么...比赛时高精度难倒了一票人...成功搞出大新闻...

    试了一下直接double相加超时,然后放弃(汗),然后double 有效数字最多16位的话,确实需要高精度了呢...

    然后,机智的代码:

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    using namespace std;
    
    int ans[200];
    char num[210];
    
    int main() {
        int n;
        while(~scanf("%d", &n)) {
            memset(ans, 0, sizeof(ans));
    
            for (int i=0; i<n; ++i) {
                scanf("%s", num);
                int len = strlen(num);
                int point = 0;
    
                for (int i=0; i<len; ++i) {
                    if (num[i] == '.') {
                        point =i;
                        break;
                    }
                }
    
                int cnt = 100;
                // 整数部分
                for (int i=point-1; i>=0; --i) {
                    ans[cnt--] += num[i] - '0';
                }
    
                // 小数部分
                cnt = 101;
                for (int i=point+1; i<len; ++i) {
                    ans[cnt++] += num[i] - '0';
                }
            }
    
    
            for (int i=199; i>0; --i) { // 检查进位
                ans[i-1] += ans[i] / 10;
                ans[i] %= 10;
            }
    
            if (ans[113] >= 5) ans[112]++; // 四舍五入 保留12位小数
    
            for (int i=199; i>0; --i) { // 四舍五入之后检查进位
                ans[i-1] += ans[i] / 10;
                ans[i] %= 10;
            }
    
            int out = 0;
            for (int i=0; i<113; ++i) {
                if (ans[i] || i == 100) out = 1; // 遇见第一个不是0的数 或者 到了小数部分
                if (out) printf("%d", ans[i]); // 就可以直接输出了
                if (i == 100) printf(".");
            }
            printf("
    ");
        }
        return 0;
    }
    

    突然觉得acmerhaizhentingyukuaidene...

    讲道理,高精度本来就是模拟ba...

  • 相关阅读:
    【Codeforces 933A】A Twisty Movement
    【Codeforces 996B】World Cup
    【Codeforces 469B】Chat Online
    鼠标点击后的CSS3跑马灯效果
    CSS的相对定位和绝对定位
    CSS3制作的一款按钮特效
    单元测试小结
    JS对输入判断变化屏蔽中文输入法输入时连续触发事件的方法
    jquery的load方法
    MVC视图特性
  • 原文地址:https://www.cnblogs.com/icode-girl/p/5371798.html
Copyright © 2020-2023  润新知