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

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

问题描述:

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

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

希望能帮到你。。。。。

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