0

これはスタック オーバーフローに関する私の最初の投稿です。いくつかの投稿を検索しようとしましたが、探しているものが見つかりませんでした。

Spotify でリバース バイナリの問題を送信しようとしていますが、"WRONG ANSWER" という返信が返ってきます。私は C と C++ の両方で問題をコーディングしており、多くの入力に対する回答を検証することができます。プログラムのロジックに問題があるようには見えません。パズルには、「入力は標準入力から読み取られる」と記載されています。

私は使用しようとしました:

  1. C: printf、scanf 関数
  2. C++: cout および cin 関数 (および先頭に「名前空間 std を使用」と記述)
  3. 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;
4

3 に答える 3

2

Ok。Spotify は、送信されたコードをコンパイルして実行する自動化されたボットのように見えることに注意してください。

最初に、「数字を入力してください」プロンプトを提供することで、回答を汚染しています。ボットはそれを本当の答えから切り離しません。

第二に、それがどのようにコンパイルされるかわかりません。このpush()pop()top、およびstackコードは何ですか? std::stack クラスを使用しようとしていますか? もしそうなら、それをどのように使用しているかを確認してください。

一方、std::stack を使用していないが、独自のカスタム マクロ (表示されていません) を使用している場合は、それらを確認することをお勧めします。

于 2013-03-15T12:42:52.450 に答える
0

C ++でstdinから読み取り、stdoutに書き込むには:

#include <iostream>

int main() {
    unsigned int value;
    std::cin >> value;
    std::cout << reverse_binary(value);
}

実装する必要があるだけですreverse_binary(c:

これを、任意のストリームで機能する関数に抽出できます。

void main_io(std::istream& input, std::ostream& ouput) {
    unsigned int value;
    input >> value;
    output << reverse_binary(value);
}

cinそして、とを使用してそれを呼び出しますcout

int main() {
    main_io(std::cin, std::cout);
}

stringstreamまたは、 sを使用してテストできます。

#include <sstream>
#include <cassert>

int main() {
    std::istringstream input("13");
    std::ostringstream output;

    main_io(input, output);

    assert(output.str() == "11");
}
于 2013-03-15T00:21:13.753 に答える
0

ストリーミングは (バグがありますが) 正常に動作します。
私はあなたのコードを実行しました、

int reverse_binary(int value)
{
  if (value == 13) return 11;
  return 1;
}

独自の reverse_binary 関数内にある必要があります。あなたの実際の問題は何ですか?

于 2013-03-15T06:36:09.157 に答える