首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

打印1到最大n位数

这道题是面试过可能会遇到手写代码题。如n为3时,那么需要打印1到999。需要注意是当输入n很大时,最大n位数是不能通过int或者long long int来表示,此时可以使用字符数组来存储。...思路一: 1到n位最大数值采用字符数组存储。数值高位存储在字符数组低地址位。...[n] = '\0'; //先对字符串数组初始化 while ( Increment(numchar,n) ) //字符串数组++,如果已经是最大则返回...思路二: 换思路,n位所有十进制数其实就是n个0-9数全排列过程,只是排在前面的0我们不打印出来。 全排列可以用递归去写,递归结束条件是我们已经设置了数字最后一位。...总结: 如果面试题是关于n位整数并且没有限定n取值范围,或者是输入任意大小整数,那么这个题目很有可能是需要考虑大数问题。字符串是一个简单、有效表示大数方法。

35810

打印从1到最大n位数

经过一番调整走出来了,心态调整好了,后续将保持正常学习进度 前言 有一个数字n,我们需要按照顺序输出从1到最大n位十进制数,例如:n = 3,则输出1、2、3...一直到最大3位数999。...循环解法 当我们过一眼这个问题后,脑海中想到第一个思路肯定是: 先求出这个最大n位数 用一个循环从1开始逐个打印至最大n位数 很轻松就能写出如下所示代码: export default class...1到最大值-1位置值,就是n位数最大值 for (let i = 1; i < maxNumber; i++) { console.log(i); } } } 这段代码乍一看没啥问题...继续执行递归函数 接受三个参数:数字位数组、数字位数、当前位 基线条件:当前位是最大前一位 从0遍历至9,进入循环: 我们举个例子,通过一个图来描述下上述思路执行过程,我们用n来描述所求位数,...当n=3时,那么递归树就如下所示: A控制百位,使用递归从0排列至9 B控制十位与个位,使用递归从0排列至9 image-20220209004401364 注意:A中遍历永远只关注最高位数排列赋值

66130
您找到你想要的搜索结果了吗?
是的
没有找到

剑指offer-打印从 1 到最大 n 位数

题目 输入数字 n,按顺序打印出从 1 到最大 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大 3 位数即 999。...输入: n = 1 输出: [1,2,3,4,5,6,7,8,9] 解题思路(一) 找到最大数number值,计算公10n次方-1; 直接遍历循环number; private void printMaxNumer...解题思路(二) 基于上面思路,这次可以使用字符串形式打印从1到最大n位数 我们发现n位数每一位数其实就是0~9全排列 递归条件就是我迭代到最低位就是个位,这个时候就应该输出数字 如果我们未满n位数字前面补...0,在打印时候,前面的0不要打印出来 上图是简单基本思路,边看代码边看图,有助于理解代码,完整代码如下 public class Soultion { public void printToMaxofNDigits...digit == number.length) { printNumer(number); return; } //循环每一位数中可能数字

81320

Modelsim仿真之路(多个使用

准备 在Modelsim系列第一篇有讲到过,在modelsim中,库分为了工作库和资源库,本篇将介绍如何进行资源库使用。...,可以后续自行在配置文件里添加对应库路径; 创建资源库 接下来正式开始本篇内容 老样子,先给本篇使用创建一个独立文件夹,然后在modelsim中改变当前路径为新建文件夹路径;依次选择:File...文件,然后接下来一些库路径啥就会记录到这个文件里,而不会去改动安装路径下那个文件,也就避免了遇到一些不必要问题; 接着要给这个库添加文件了,点那个工具栏编译工具 会出现下面的窗口,先选中要编译到库里文件...:在进行仿真的时候,有一个合适路径去搜索需要文件;然后开始来进行这样操作,先点击Simulate小图标; 出现窗口中,先选中work下激励文件 然后切换到Libraries菜单,并点击...,而可以共用一份资源库,关于Modelsim基本使用其实到这也差不多了,本篇后就要开始使用Modelsim进行分析操作了。

1.6K10
领券