9,10测试点过不了求调
查看原帖
9,10测试点过不了求调
964081
EgoStrip楼主2024/1/10 13:41

我的思路是用字符串读入再倒序输出,正、负数和0进行判断,对于数字中间的0,将其转换为其他符号 , 输出时再化成0,不知道问题在哪,求debug。

**#include<iostream>
#include<string>
using namespace std;
int main(){
   string n;
   cin>>n;
   for(int i=0;i<n.size();i++){
   	if(n[i]=='0'&&n[i-1]!='0'&&n[i+1]!='0'&&i!=n.size()-1){
   		n[i]='&';//对于中间的0转化为&
   	}
   }
   if(n[0]=='-'){//对于负数的输出
   	cout<<'-';
       for(int i=n.size()-1;i>0;i--){
   	if(n[i]=='0'){
   		continue;
   	}
   	else if(n[i]=='&'){
   		cout<<0;
   	}
   	else{
   		cout<<n[i];
   	}
   }
   }
   else if(n[0]=='0'){//对于0的输出
   	cout<<'0'<<endl;
   	return 0;
   }
   else{//对于正数的输出
   for(int i=n.size()-1;i>=0;i--){
   	if(n[i]=='0'){
   		continue;
   	}
   	else if(n[i]=='&'){
   		cout<<'0';
   	}
   	else{
   		cout<<n[i];
   	}
   }
}
   return 0;
}**
2024/1/10 13:41
加载中...