ji1812062521
2015-12-14 08:00
采纳率: 78.3%
浏览 5.9k

C++,编写一个递归函数,将任意的十进制正整数转换为八进制数

编写一个递归函数,将任意的十进制正整数转换为八进制数,要求用C++语言,递归函数

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 凡沙-Fanrncho 2015-12-14 08:35
    已采纳

    #include
    #include
    using namespace std;

    void Function( int number, string& result )
    {
    int replace = number;
    int value = number % 8;
    char ch[ 10 ];
    sprintf( ch, "%d", value );
    result += ch;
    replace /= 8;
    if( replace <= 0 )
    {
    return ;
    }
    Function( replace, result );
    }

    void main()
    {
    int x = 10;
    string result;
    Function( 10, result );
    int index = result.size();
    stringstream sstream;
    while( index > 0 )
    {
    string ret;
    auto obj = result.substr( index - 1, 1 );
    index -= 1;
    sstream << obj;
    }
    string ret;
    sstream >> ret;
    cout << ret.c_str() << endl;
    system( "pause" );
    }

    点赞 评论
  • 凡沙-Fanrncho 2015-12-14 08:40

    希望能帮到你。。。。。

    点赞 评论
  • lcmx86 2015-12-14 09:15

    #include
    #include

    using namespace std;

    int octal(int val)
    {
    if (val < 8)
    return val;
    else
    return octal(val/8)*10 + val%8;
    }

    int main(int argc, char ** argv)
    {
    if (argc != 2) {
    cout << "must input number." << std::endl;
    return -1;
    }
    cout << "octal : " << octal(atoi(argv[1])) << std::endl;
    }

    点赞 评论

相关推荐 更多相似问题