1553数字反转(升级版)

小数 10.01 ——01.10
分数 30/30 ——03/03
百分数 110% —— 011%
整数 100 —— 001
         
注意00 、0.00、00/1 、00%
#include <iostream>

using namespace std;
string s,op;
long long dig,no,a[3];
int main(int argc, char** argv) {
	cin>>s;
	dig=1;
	int i;
	for(i=0;i<s.size();i++){
		if(s[i]>='0'&&s[i]<='9') a[0]+=(s[i]-'0')*dig, dig*=10;
		else {
			op+=s[i]; break;	
		}
	}
	cout<<a[0]<<op;
	dig=1;
	if(op[0]=='.'||op[0]=='/') {
		for(int j=i+1;j<s.size();j++){
			a[1]+=(s[j]-'0')*dig, dig*=10;
		}
		if(op[0]=='.'){
			while(a[1]%10==0&&a[1]) a[1]/=10;
		}
		cout<<a[1]<<endl;
	}
	return 0;
}

全部评论

相关推荐

有担当的灰太狼又在摸鱼:零帧起手查看图片
点赞 评论 收藏
分享
06-13 15:45
辽宁大学 golang
咱就是说&nbsp;你不主动&nbsp;我也不会主动下一步hhh,急死了
恶龙战士:不建议把这种帖子发到牛客上,建议去小红书发
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务