0

次のコードを使用して、コード内の何も変更せずに再帰関数を追加して機能させます。

 sf::RenderWindow window(sf::VideoMode(WIDTH, HEIGHT), TITLE);
 int stop = 800;
 sf::Color colour1(sf::Color::Black), colour2(sf::Color::Red);

 // Start the main loop
 while (window.isOpen()) {          
     // Process events
     sf::Event event;

     while (window.pollEvent(event)) {
         // check the type of the event...
         switch (event.type) {
             // window closed
             case sf::Event::Closed:
                 window.close();
                 break;

             case sf::Event::MouseMoved: //mouse moved
                 stop = mapXtoMinSize(event.mouseMove.x); // convert x coordinate of mouse to minimum size of square to draw
                 break;    
             // we don't process other types of events
             default:
                break;
          } //end switch     
      } //End-Process events
      window.clear(colour2);
 }

そのようなことをする方法を知りたいだけです。

4

1 に答える 1

0

再帰関数は一般的に次のようになります。

int recursive(int x) {
    if (x == 0) {
        return 0;
    } else {
        return (x + recursive(x - 1));
    }
}

(x - 1)これは、自分自身を繰り返し呼び出して合計を計算し、これを結果に追加することにより、0 から x までのすべての整数を合計します。基本ケース にx == 0遭遇した場合、再帰は終了し、呼び出しは元に到達するまで巻き戻され、その時点までに合計が計算されます。もっと具体的にお願いします。

再帰関数で何を達成しようとしているのかを知らなければ、これ以上のアドバイスはできません。「コードを何も変更せずに」というコメントの意味がわかりません。

于 2013-11-08T15:02:50.290 に答える