me528963 @ 2019-09-24 00:06:30
#include <iostream>
#include <string>
using namespace std;
int main()
{
string n;
char a[11];
int i=0;
cin>>n;
int j=n.length();
while(n[i])
{
if(n[i]>='0'&&n[i]<='9'){ a[j-1]=n[i];j--;}
else{
i++;j--;
continue;
}
i++;
}
if(n[0]=='-' || n[0]=='0') cout<<n[0];
for(j=0;j<i;j++)
{
if(a[j]=='0')continue;
cout<<a[j];
}
return 0;
}
不懂为什么只有50分...#1本地测试答案也是正确的然而却是WA...
by S1gMa @ 2019-09-24 00:42:37
首先解决第一个问题
−1,000,000,000≤N≤1,000,000,000
a数组开小第一个爆了
然后第一个text解决后,发现T 7 8 9 10全WA
下载测试点后发现你的代码自动删去0
明显这里的问题
if(a[j]=='0')continue;
然后发现你这个明显是麻烦了不用想那么多
#include <iostream>
using namespace std;
int n,k;//反转前的数和反转后的数
int main(){
cin >> n;
while(n){//处理完了吗
k = k * 10 + n % 10;//k已有的值*10腾出一个零欢迎新来的小弟
n /= 10;//凄凉啊,又有人背叛了我,扔掉已经加上的那一位
}
cout << k << endl;
}
上个题解参考一些千万不要抄哦
by S1gMa @ 2019-09-24 00:42:51
@me528963 本人蒟蒻
by me528963 @ 2019-09-24 08:30:25
@starry星空 大佬我是想着把数用字符数组表示所以数组a才开了那么大...另外我想问一下为什么测试点1本地过了提交却wa了 ? 后面那个去零问题感谢大佬提出