zoukankan      html  css  js  c++  java
  • (水题)洛谷

    https://www.luogu.org/problemnew/show/P1553

    忘记给整数加上前导零去除的代码了。其实不去也可以,额外的进位用一个carry另外存起来就好。

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    
    char s[40];
    
    int main(){
        scanf("%s",s);
        int n=strlen(s);
        for(int i=0;i<n;i++){
            if(s[i]=='.'){
                reverse(s,s+i);
                reverse(s+i+1,s+n);
                int haveout=0;
                for(int j=0;j<i;j++){
                    if(s[j]=='0'&&haveout==0)
                        ;
                    else{
                        printf("%c",s[j]);
                        haveout=1;
                    }
                }
                if(haveout==0){
                    printf("0");
                }
    
                printf(".");
                int allzero=1;
                int last=0;
                for(int j=i+1;j<n;j++){
                    if(s[j]!='0'){
                        last=j;
                        allzero=0;
                    }
                }
    
                if(allzero){
                    printf("0
    ");
                }
                else{
                    for(int j=i+1;j<=last;j++){
                        printf("%c",s[j]);
                    }
                    printf("
    ");
                }
                return 0;
            }
            else if(s[i]=='/'){
                reverse(s,s+i);
                reverse(s+i+1,s+n);
                int haveout=0;
                for(int j=0;j<i;j++){
                    if(s[j]=='0'&&haveout==0)
                        ;
                    else{
                        printf("%c",s[j]);
                        haveout=1;
                    }
                }
                if(haveout==0){
                    printf("0");
                }
    
                printf("/");
                haveout=0;
                for(int j=i+1;j<n;j++){
                    if(s[j]=='0'&&haveout==0)
                        ;
                    else{
                        printf("%c",s[j]);
                        haveout=1;
                    }
                }
                if(haveout==0){
                    printf("0");
                }
                printf("
    ");
                return 0;
    
            }
            else if(s[i]=='%'){
                reverse(s,s+i);
                int haveout=0;
                for(int j=0;j<i;j++){
                    if(s[j]=='0'&&haveout==0)
                        ;
                    else{
                        printf("%c",s[j]);
                        haveout=1;
                    }
                }
                if(haveout==0){
                    printf("0");
                }
    
                printf("\%
    ");
                return 0;
            }
        }
    
        reverse(s,s+n);
        int haveout=0;
        for(int j=0;j<n;j++){
            if(s[j]=='0'&&haveout==0)
                ;
            else{
                printf("%c",s[j]);
                haveout=1;
            }
        }
        if(haveout==0){
            printf("0");
        }
        printf("
    ");
    
    }
  • 相关阅读:
    Java中String、StringBuffer和StringBuilder的区别
    Map集合学习
    Set集合学习
    List集合学习
    常用集合类简介及线程安全和非线程安全的集合对象
    JQuery入门
    原生Ajax使用
    JavaScript闭包
    Demo:servlet实现图片的上传
    Android Handler 内存泄漏问题
  • 原文地址:https://www.cnblogs.com/Yinku/p/10293811.html
Copyright © 2011-2022 走看看