//和剑指offer程序基本一致,不过print和进位两部分合并在一个程序中
//如果把其分拆,进行适当的整理,代码会更加整洁
void PrintToMaxOfDigitsN(int n)
{
if (n <= ) return; int i = ;
bool sign = false; //判断是否进一位
char *num = new char[n + ], *num_out; //字符串初始化
for ( i = ; i < n; i++)
{
num[i] = '';
}
num[n] = '\0'; while (true)
{
sign = false; if ('' != num[n - ])
{
num[n - ] += ;
}
else
{
for (i = n - ; i >= ; i--)
{
if ('' == num[i])
{
if (!=i)
{
num[i] = '';
}
else
{
delete[] num;
return; //已经输出至最大值
}
}
else
{
num[i + ] = '';
num[i] += ;
break; //+1操作完成,跳出循环
}
}
} num_out = num;
while ('' == *num_out)
{
++num_out;
}
cout << num_out << endl;
}
}

针对此题,还有使用全排列,调用递归实现。

另外,此题不适用char存储的话,可以使用四个bit存储一个十进制数。

最后,针对大数的加减乘除,使用字符串操作实在是虐心,可以使用string实现。

具体可参考:

http://bbs.csdn.net/topics/390499949中赵四老师的相关代码。

最新文章

  1. VR(虚拟现实)开发资源汇总
  2. golang使用 mongo
  3. 关于.NET大数据量大并发量的数据连接池管理
  4. iOS开发~CocoaPods使用详细说明【转】
  5. mvc-servlet---ServletConfig与ServletContext对象详解(转载)
  6. Nginx系列~负载均衡服务器与WWW服务器的实现
  7. 记一次电信反射xss的挖掘与利用
  8. Spring 自带的定时任务Scheduled
  9. Ubuntu系统下安装CodeBlocks
  10. C++常见问题解答博客合集
  11. 初始化git库并配置自动部署
  12. windows下python环境安装
  13. Vue2+VueRouter2+webpack 构建项目实战(三):配置路由,运行页面
  14. linux shell 数组建立及使用技巧
  15. linux git:fatal: HTTP request failed
  16. Linux其他: GitBash
  17. 10 个优质的 Laravel 扩展推荐
  18. iPhone的设备名转换
  19. 【LG4585】[FJOI2015]火星商店问题
  20. poj 1988 并查集(终于看懂一个了/(ㄒoㄒ)/~~)

热门文章

  1. html之dl标签
  2. fastjson生成和解析json数据
  3. The &#39;Microsoft.ACE.OLEDB.12.0&#39; provider is not registered on the local machine
  4. DataGridView 添加行号
  5. Silverlight开源框架SL提供便捷的二次开发银光框架
  6. lwip:网络数据包读取和解析过程
  7. Koala logoJava EE 应用开发平台 Koala
  8. HDMI的CEC是如何控制外围互联设备的
  9. oracle学习笔记(一)配置监听
  10. iphone dev 入门实例2:Pass Data Between View Controllers using segue