85分代码,求大犇们改进。
查看原帖
85分代码,求大犇们改进。
406124
Yzj2010小号楼主2021/10/5 20:17
#include<bits/stdc++.h>
using namespace std;
long long o[21];
int main()
{
	int i,j,ans1,ans2,s=0,k;
	unsigned long long ans=0;
	string a;
	cin>>a;
	j=a.size();
	for(i=0;i<=j;i++) 
	{
		if(a[i]=='.') {s=1;k=i;break;}
		if(a[i]=='/') {s=2;k=i;break;}
		if(a[i]=='%') {s=3;break;}
	}
	if(s==0)
	{
		int h=1;
		for(i=0;i<=j-1;i++) o[i]=a[i]-48;
		for(i=0;i<=j-1;i++)
		{
			ans=ans+o[i]*h;
			h*=10;
		}
		cout<<ans;
		return 0;
	}
    if(s==1)
    {
        int h=1,p=0;
        for(i=0;i<=k-1;i++) o[i]=a[i]-48;
  		for(i=0;i<=j-1;i++)
		{
			ans=ans+o[i]*h;
			h*=10;
		}      
        cout<<ans<<".";
        ans=0;
        h=1;
        for(i=k+1;i<=j-1;i++) o[i]=a[i]-48;
  		for(i=j-1;i>=k+1;i--)
		{
			ans=ans+o[i]*h;
			h*=10;
            
		}     
        i=0;
        p=ans;
        ans=0;
        while(p!=0)
        {
            i++;
            o[i]=p%10;
            p=p/10;
        }
        h=1;
        for(j=i;j>=1;j--)
        {
            ans=ans+o[j]*h;
            h=h*10;
        }
        cout<<ans;
        return 0;
    }
    if(s==2)
    {
        int h=1;
        for(i=0;i<=k-1;i++) o[i]=a[i]-48;
        for(i=0;i<=k-1;i++)
        {
            ans=ans+h*o[i];
            h*=10;
        }
        cout<<ans<<"/";
        h=1;
        ans=0;
        for(i=k+1;i<=j-1;i++) o[i]=a[i]-48;
        for(i=k+1;i<=j-1;i++)
        {
            ans=ans+h*o[i];
            h*=10;   
        }
        cout<<ans;
        return 0;
    }
    if(s==3)
    {
        int p=0,h=1;
        for(i=0;i<=j-2;i++) o[i]=a[i]-48;
        for(i=0;i<=j-2;i++)
		{
			ans=ans+o[i]*h;
			h*=10;
		} 
        cout<<ans<<"%";
    }
	return 0;
}
2021/10/5 20:17
加载中...