Как отсчитать до 0 C ++ - PullRequest
       15

Как отсчитать до 0 C ++

0 голосов
/ 08 апреля 2020

Я пытаюсь решить проблему LeetCode, которая заключается в обратном отсчете числа до 0. Я думаю, что я близок, но моя переменная num всегда печатает 0, я подозреваю, что это обратный отсчет, но не печать, пока он не завершится. Пожалуйста, взгляните на мой код.

#include <stdio.h>
#include <iostream>
using namespace std;

class Solution {
public:
    int num;
    int numberOfSteps (int num) 
    {
      while (num != 0)
      {
        if (num % 2 == 0)
          {
            num = num / 2;
            cout << num;
          }
        else
        {
            num = num - 1;
            cout << num;
        }
    }

    }
};
int main () {
    int num;
    Solution myObj;
    cin >> num;
    cout << myObj.num;
    }

1 Ответ

1 голос
/ 08 апреля 2020

Вы передаете число на std::cout. Вы также не вызываете numberOfSteps(...) в любом месте своего кода.

Замена строки на cout << myObj.numberOfSteps(num); устраняет проблему, но более подходящее решение будет следующим:

#include <stdio.h>
#include <iostream>

void countDown (int num) {
    while (num != 0) {
        if (num % 2 == 0) {
            num = num / 2;
            std::cout << num << std::endl;
        } else {
            num = num - 1;
            std::cout << num << std::endl;
        }
    }
}

int main () {
    int num;
    std::cin >> num;
    countDown(num);
}

Класс не требуется, так как нет состояния и функция void, так как она ничего не возвращает.

...