打印从1到最大的n位数
2024-10-18 20:16:59
//和剑指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中赵四老师的相关代码。
最新文章
- VR(虚拟现实)开发资源汇总
- golang使用 mongo
- 关于.NET大数据量大并发量的数据连接池管理
- iOS开发~CocoaPods使用详细说明【转】
- mvc-servlet---ServletConfig与ServletContext对象详解(转载)
- Nginx系列~负载均衡服务器与WWW服务器的实现
- 记一次电信反射xss的挖掘与利用
- Spring 自带的定时任务Scheduled
- Ubuntu系统下安装CodeBlocks
- C++常见问题解答博客合集
- 初始化git库并配置自动部署
- windows下python环境安装
- Vue2+VueRouter2+webpack 构建项目实战(三):配置路由,运行页面
- linux shell 数组建立及使用技巧
- linux git:fatal: HTTP request failed
- Linux其他: GitBash
- 10 个优质的 Laravel 扩展推荐
- iPhone的设备名转换
- 【LG4585】[FJOI2015]火星商店问题
- poj 1988 并查集(终于看懂一个了/(ㄒoㄒ)/~~)
热门文章
- html之dl标签
- fastjson生成和解析json数据
- The &#39;Microsoft.ACE.OLEDB.12.0&#39; provider is not registered on the local machine
- DataGridView 添加行号
- Silverlight开源框架SL提供便捷的二次开发银光框架
- lwip:网络数据包读取和解析过程
- Koala logoJava EE 应用开发平台 Koala
- HDMI的CEC是如何控制外围互联设备的
- oracle学习笔记(一)配置监听
- iphone dev 入门实例2:Pass Data Between View Controllers using segue