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

作者:用户 来源:互联网 浏览:2118 次 时间:2016-03-22 13:35:14

c++

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

问题描述

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
#include

解决方案三:

额,怎么打出来头文件看不到—_— 加sstream 、string、iostream三个头文件

解决方案四:

希望能帮到你。。。。。

解决方案五:

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

【云栖快讯】阿里云栖开发者沙龙(Java技术专场)火热来袭!快来报名参与吧!  详情请点击
双十二
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备

热点导航