陈志轩 • 5个月前
#include<iostream>
#include<stack>
using namespace std;
stack <int> ans;
int main(){
int n,m;
cin>>n>>m;
if (n == 0){
ans.push(0);
}
while (n > 0){
ans.push(n % m);
n /= m;
}
while (!ans.empty()){
if (ans.top() >= 10){
putchar((char)(ans.top() - 10 + 'A'));
}
else{
cout<<ans.top();
}
ans.pop();
}
return 0;
}
上面的代码应该会在第 18 行报错,因为没有加 cstdio 头文件,但是放到 magicoj 上就 AC 了,我很不理解
我发现在 C++98 评测环境下改代码会 CE,但是放到其他评测环境下(如 C++11)就 不会 CE 了,所以是我的 dev-c++ 太 old 了吗(
还有一个,我把代码改成了这样:
#include<iostream>
#include<stack>
using namespace std;
stack <int> ans;
int main(){
int n,m;
cin>>n>>m;
if (n == 0){
ans.push(0);
}
while (n > 0){
ans.push(n % m);
n /= m;
}
while (!ans.empty()){
if (ans.top() >= 10){
putwchar((char)(ans.top() - 10 + 'A'));
}
else{
cout<<ans.top();
}
ans.pop();
}
return 0;
}
这次不会 CE 了,但是只有第八个测试点 WA 了,其他都 AC,而且我的输出与第八个点的答案一样,所以咋回事呢(
评论: