Сбор остатков при преобразовании числа в троичное основание (C ++) - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь написать программу на C ++. Это гораздо более длинная программа, но мне нужна помощь в отношении только одной из функций в ней.

По сути, эта функция должна получить число, а затем вернуть то же самое число, но в троичной базе. Теперь моя идея состоит в том, чтобы в основном разделить это число на 3 и собрать остатки (если мое число «n», я бы использовал n% 3), а затем я просто разделил бы это число на 3 (n / 3) и go снова до тех пор, пока число «n» при повторном делении не станет 0.

Это должно сработать и преобразовать число в троичное основание, но моя проблема в том, что я не знаю, как собрать эти остатки. Это, вероятно, глупый вопрос, но я все еще начинающий в программировании.

В принципе, если я сделаю некоторое время l oop, что-то вроде этого:

while(n>0) 
{
 int digitofternary=n%3;
 n/=3;
}

В каждой итерации в то время как l oop, цифра четвертиная только изменится. Как я могу настроить это l oop, чтобы цифры запоминались / собирались, и я мог вернуть новое нормальное троичное базовое число из функции?

Извините, если это звучит странно, надеюсь, что это не так (я не родной английский sh динамик).

1 Ответ

1 голос
/ 21 марта 2020
int sample_fn (int n) 
{ 
    std::string str_ret;
    while(n>0) 
    {
       int digitofternary=n%3;
       n/=3;
       std::string str= std::to_string(digitofternary);
       str_ret.append(str); 
    }
    return std::stoi(str_ret);
}
...