首页 > 代码库 > 【编程题目】输出 1 到最大的 N 位数
【编程题目】输出 1 到最大的 N 位数
65.输出 1 到最大的 N 位数(运算)
题目:输入数字 n,按顺序输出从 1 最大的 n 位 10 进制数。比如输入 3,
则输出 1、2、3 一直到最大的 3 位数即 999。
思路:肯定要考虑数字溢出的情况,用字符串表示数字,模拟加法。
/*65.输出 1 到最大的 N 位数(运算)题目:输入数字 n,按顺序输出从 1 最大的 n 位 10 进制数。比如输入 3,则输出 1、2、3 一直到最大的 3 位数即 999。*/#include <iostream>using namespace std;void printnum(int n){ int figure = 0; //记录数字的位数 char * pNum = new char [n + 1]; memset(pNum, 0, n * sizeof(char)); pNum[0] = 1; //从1开始 while(figure < n) { for (int i = figure; i >= 0; i--) //输出数字 从当前的最高位开始 { cout << int(pNum[i]); } cout << endl; int ftmp = 0; while (pNum[ftmp] == 9) //从最后一位依次向前判断是否进位,如果进位本位就归零, 找到实际上增加的那一位 { pNum[ftmp++] = 0; } if (ftmp > figure) //如果满足,表示数字的位数增加了 { figure++; } pNum[ftmp] += 1; } delete [] pNum;}int main(){ printnum(3); return 0;}
网上搜了下答案,感觉我自己写得这个就挺好的。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。