将数字转换为三进制基数时收集余数 (C++)

Collecting remainders while converting a number to ternary base ( C++ )

我正在尝试用 C++ 编写程序。这是一个更长的程序,但我只需要有关其中一个功能的帮助。

基本上,这个函数应该得到一个数字,然后 return 那个相同的数字,但在三进制中。现在,我的想法是基本上将该数字除以 3 并收集余数(如果我的数字是 "n",我将使用 n%3)然后我将该数字除以 3(n/3 ) 并再次进行,直到该数字 "n" 通过重复除法变为 0。

这应该可以将数字转换为三进制,但我的问题是我不知道如何收集这些余数。这可能是一个愚蠢的问题,但我仍然是编程的初学者。

基本上,如果我做一个 while 循环,就像这样:

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

在 while 循环的每次迭代中,digitofternary 都会发生变化。我怎样才能调整这个循环使数字得到 remembered/collected 并且我可以 return 从函数中得到一个新的正常三进制基数?

抱歉,如果这听起来令人困惑,希望它没有(我不是以英语为母语的人)。

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);
}