将数字转换为三进制基数时收集余数 (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);
}
我正在尝试用 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);
}