zoukankan      html  css  js  c++  java
  • XidianOJ 1060 坑爹的杜神

    题目描述

    众所周知,杜神非常喜欢出大模拟,也非常喜欢设置一些细节坑人。例如,在某次大赛中,他出了一道这样的题

    (以下省略3000字)

    计算出答案a后,你应该将a除以1000,再保留到小数点后两位输出,四舍五入。

    保证a是非负整数,而且不超过64位有符号整数的表示范围。

    输入

    多组数据,每组数据1行,包含整数a。

    输出

    每组数据输出一行,表示杜神要你输出的答案。

    --正文

    把数看作字符串来处理

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    using namespace std;
    int main(int argc,char** argv)
    {
            char num[2000];
    
            int i,j;
    
            while (scanf("%s",num) != EOF) {
    
                int length = strlen(num);
    
                if (length <= 3){
                    if (length <= 2){
                        if (length == 2)
                        {
                            if (num[1] >= '5'){
                                if (num[0] == '9'){
                                    printf("0.10
    ");
                                }
                                else {
                                    printf("0.0%c
    ",num[0]+1);
                                }
                            }
                            else {
                                printf("0.0%c
    ",num[0]);
                            }
                        }
                        else {
                            if (num[0] >= '5'){
                                printf("0.01
    ");
                            }
                            else {
                                printf("0.00
    ");
                            }
                        }
                    }
                    else {
                        if (num[length-1] >= '5'){
                            int now = length-2;
                            while ( now >= 0 && num[now] == '9'){
                                num[now] = '0';
                                now --;
                            }
                            if (now == -1) {
                                printf("1.%c%c
    ",num[0],num[1]);
    
                            }
                            else {
                                num[now]++;
                                printf("0.%c%c
    ",num[0],num[1]);
                            }
                        }
                        else {
                            printf("0.%c%c
    ",num[0],num[1]);
                        }
                    }
                }
                else {
                    if (num[length-1] >= '5') {
                        int now = length-2;
                        while ( now >= 0 && num[now] == '9'){
                            num[now] = '0';
                            now --;
                        }
                        if (now == -1) {
                            int i;
                            printf("1");
                            for (i=0;i<=length-2;i++){
                                printf("%c",num[i]);
                                if (i == length-4) {
                                    printf(".");
                                }
                            }
                        }
                        else {
                            num[now] ++;
                            int i;
                            for (i=0;i<=length-2;i++){
                                printf("%c",num[i]);
                                if (i == length-4) {
                                    printf(".");
                                }
                            }
                        }
                        printf("
    ");
                    }
                    else {
                        int i;
                        for (i=0;i<=length-2;i++){
                            printf("%c",num[i]);
                            if (i == length-4) {
                                printf(".");
                            }
                        }
                        printf("
    ");
                    }
                }
            }
    
    
        return 0;
    }
  • 相关阅读:
    磁盘读写监控
    system.stat[resource,<type>]
    zookeeper核心之基于 Curator 实现分布式锁
    zookeeper之服务端接收数据请求和集群模式下的处理流程
    zookeeper之事件触发
    zookeeper之客户端接收服务端处理完成的响应
    zookeeper之服务端接收请求处理流程
    zookeeper之Watcher的基本流程
    zookeeper原理之Leader选举完成之后的处理逻辑
    zookeeper原理之投票的网络通信流程
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6081316.html
Copyright © 2011-2022 走看看