时间:2021-05-20
本文以实例形式讲述了C++实现打印1到最大的n位数的方法。分享给大家供大家参考。具体方法如下:
题目要求:
输入数字n,按顺序打印出从1最大的n位十进制数,比如输入3,则打印出1,2 ,3一直到最大的3位数999
实现代码如下:
#include <iostream>using namespace std;void printArray(char *array, int size){ if (array == NULL || size <= 0) { return; } int index = 0; while (array[index] == '0') index++; for (int i = index; i != size; i++) printf("%c", array[i]); cout << endl;}void printNumbers(int n){ if (n <= 0) { return; } char *array = new char[n + 1]; if (array == NULL) { throw("allocate memory error"); return; } memset(array, '0', n); array[n] = 0; while (true) { int takeOver = 0; for (int i = n - 1; i >= 0; i--) { int num = array[i] - '0'; if (i == n - 1) { num++; } else { num += takeOver; takeOver = 0; } if (num == 10) { if (i == 0) goto here; array[i] = '0'; takeOver = 1; } else { array[i] = num + '0'; break; } } printArray(array, n); }here: delete []array;}void main(){ int n = 3; printNumbers(n);}这里一定要注意break的使用
array[i] = num + '0';
break;
由于此break的存在,使得takeOver不用重新置为0
也就是说
希望本文所述对大家C++程序算法设计的学习有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C++实现查找中位数的O(N)算法和Kmin算法,分享给大家供大家参考。具体方法如下:利用快速排序的partition操作来完成O(N)时间内的中
C++实现求小于n的最大素数的实例枚举就是基于已有知识镜像答案猜测的一种问题求解策略问题:求小于n的最大素数分析:找不到一个数学公式,使得根据N就可以计算出这个
C/C++获取Windows系统的位数32位或64位的实现代码场景1.在Windows64bit系统开发程序时,某些情况需要判断ProgramFiles路径,但
C++实现汉诺塔的实例详解前言:有A,B,C三塔,N个盘(从小到大编号为1-N)起初都在A塔,现要将N个盘全部移动到C塔(按照河内塔规则),求最少移动次数以及每
本文以实例形式讲述了C++实现哈夫曼树简单创建与遍历的方法,比较经典的C++算法。本例实现的功能为:给定n个带权的节点,如何构造一棵n个带有给定权值的叶节点的二