【问题标题】:Collecting remainders while converting a number to ternary base ( C++ )在将数字转换为三进制基数时收集余数(C++)
【发布时间】:2020-03-21 14:34:30
【问题描述】:

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

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

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

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

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

在 while 循环的每次迭代中,digitofternary 都会发生变化。如何调整这个循环,以便记住/收集数字,并且我可以从函数返回一个新的正常三进制基数?

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

【问题讨论】:

    标签: c++ decimal base ternary


    【解决方案1】:
    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);
    }
    

    【讨论】:

    • 感谢您的回答。是的,我基本上想返回一个整数(由那些三进制数/余数组成)。向量也许可以工作,但我需要以某种方式将整个向量转换为数字?
    • 我修改了我的答案,这是你的意思吗?
    • 是的。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 2014-04-15
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    相关资源
    最近更新 更多