为什么第五第十过不了 要特判
查看原帖
为什么第五第十过不了 要特判
1106763
wjc20230920楼主2023/11/8 19:29
#include<iostream>
#include<string>
using namespace std;
int main(){
    string a;
    int k=1,sign;
    cin>>a;
    for(int i=0;i<a.length();i++){
        if(a[i]=='.'){
            k=2;
            sign=i;
            break;
        }
        if(a[i]=='/'){
            k=3;
            sign=i;
            break;
        }
        if(a[i]=='%'){
            k=4;
            break;
        }
    }
    if(k==1){
        int m,n;
        /*if(a=="0"){
        	cout<<"0";
        	return 0;
		}//这里为啥要特判 */
        for(int j=a.length()-1;j>=0;j--){
            if(a[j]!='0'){
                m=j;
                break;
            }
        }
        for(int j=m;j>=0;j--){
            cout<<a[j];
        }
        return 0;
    }
    if(k==2){
        int m,n;
        /*if(a=="0.0"){
        	cout<<"0.0";
        	return 0;
		}//这里为什么要特判 不特判答案也一样 但过不了 */
        for(int j=sign-1;j>=0;j--){
            if(a[j]!='0'){
                m=j;
                break;
            }
        }
        for(int s=m;s>=0;s--){
            cout<<a[s]-'0';
        }
        cout<<'.';
        n=sign+1;
        for(int j=sign+1;j<=a.length()-1;j++){
            if(a[j]-'0'!=0){
                n=j;
                break;
            }
            if(j==a.length()-1){
			cout<<"0";
			return 0;
			}
        }
		for(int h=a.length()-1;h>=n;h--){
            cout<<a[h]-'0';
        }
        return 0;
    }
    if(k==3){
        int m,n;
        for(int j=sign-1;j>=0;j--){
            if(a[j]!='0'){
                m=j;
                break;
            }
        }
        for(int s=m;s>=0;s--){
            cout<<a[s]-'0';
        }
        cout<<'/';
        for(int k=a.length()-1;k>=sign+1;k--){
        	if(a[k]!='0'){
        		n=k;
        		break;
			}
		}
        for(int h=n;h>=sign+1;h--){
                cout<<a[h]-'0';
        }
        return 0;
    }
    if(k==4){
        int m,n;
        for(int j=a.length()-2;j>=0;j--){
            if(a[j]!='0'){
                m=j;
                break;
            }
        }
        for(int g=m;g>=0;g--){
            cout<<a[g];
        }
        cout<<'%';
        return 0;
    }
}
``````
2023/11/8 19:29
加载中...