【发布时间】:2013-03-03 13:46:58
【问题描述】:
这是我关于堆栈溢出的第一篇文章,所以如果我错过了一条规则,我提前道歉。 我试图搜索一些帖子,但找不到我要找的内容。
我正在尝试在 Spotify 上提交 Reversed Binary problem,但它给出的回复是“错误的答案”。我已经用 C 和 C++ 对问题进行了编码,并且能够验证大量输入的答案。看来问题不在于程序的逻辑。谜题指出“输入是从标准输入读取的”。
我试过用:
- C:printf、scanf 函数
- C++:cout 和 cin 函数(并在顶部写“using namespace std”)
- C++:直接使用 std::cout 和 std::cin 函数。
但似乎没有一个有效。
int stack[32];
top=-1
long inputNum,outputNum=0;
cout<<"Enter a Number\n";
cin>>inputNum;
while(inputNum>1) {
if(inputNum%2 == 0) {
push(0);
inputNum=inputNum/2;
} else if(inputNum%2 == 1) {
push(1);
inputNum=inputNum/2;
}
}
push(1);
int i=0,x=0;
while(top>-1) {
x=pop();
if(x==0) {
i++;
continue;
} else if(x==1) {
outputNum=outputNum+powl(2,i);
i++;
}
}
cout<<outputNum;
【问题讨论】:
-
欢迎您!请花几分钟阅读faq。
-
如果您阅读了整个常见问题解答,您将获得一个徽章(c:
-
发布最短的非工作示例,可能是 20 行代码。解释您预期会发生什么以及实际会发生什么。
-
若要在堆栈溢出时格式化代码,请在其前面加上一个空行,并在每个非空行上加上 ` 四个前导空格。您还可以通过将文本放在“反引号”中(在 ~ 键下方)来生成
code snippets。代码 sn-ps 也是让<和>出现的最简单方法。 -
int 堆栈[32]; top=-1 long inputNum,outputNum=0; cout>输入数字; while(inputNum>1) { if(inputNum%2 == 0) { push(0);输入编号=输入编号/2; } else if(inputNum%2 == 1) { push(1);输入编号=输入编号/2; } } 推(1);诠释 i=0,x=0;而(顶部>-1) { x=pop();如果(x==0) { i++;继续; } else if(x==1) { outputNum=outputNum+powl(2,i);我++; } } cout