国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++實現(xiàn)打印1到最大的n位數(shù)

2020-01-26 15:18:08
字體:
供稿:網(wǎng)友

本文以實例形式講述了C++實現(xiàn)打印1到最大的n位數(shù)的方法。分享給大家供大家參考。具體方法如下:

題目要求:

輸入數(shù)字n,按順序打印出從1最大的n位十進(jìn)制數(shù),比如輸入3,則打印出1,2 ,3一直到最大的3位數(shù)999

實現(xiàn)代碼如下:

#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
也就是說

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

希望本文所述對大家C++程序算法設(shè)計的學(xué)習(xí)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 威信县| 阿鲁科尔沁旗| 当雄县| 莎车县| 锡林浩特市| 友谊县| 慈利县| 潼南县| 高州市| 无锡市| 女性| 桐柏县| 宜宾县| 伽师县| 临桂县| 巨野县| 满洲里市| 兰西县| 安康市| 南靖县| 扎囊县| 普兰店市| 额敏县| 舒城县| 宁晋县| 莲花县| 蒙阴县| 盐源县| 莱阳市| 秭归县| 丰城市| 大冶市| 阜阳市| 安国市| 云浮市| 英吉沙县| 吴堡县| 萝北县| 张家口市| 韶山市| 高唐县|