打印从 1 到最大的 n 位数

el/2024/6/13 22:29:42

题目描述

输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数即 999。

解题思路

由于 n 可能会非常大,因此不能直接用 int 表示数字,而是用 char 数组进行存储。

使用回溯法得到所有的数。

 

public void print1ToMaxOfNDigits(int n) {if (n <= 0)return;char[] number = new char[n];print1ToMaxOfNDigits(number, 0);
}private void print1ToMaxOfNDigits(char[] number, int digit) {if (digit == number.length) {printNumber(number);return;}for (int i = 0; i < 10; i++) {number[digit] = (char) (i + '0');print1ToMaxOfNDigits(number, digit + 1);}
}private void printNumber(char[] number) {int index = 0;while (index < number.length && number[index] == '0')index++;while (index < number.length)System.out.print(number[index++]);System.out.println();
}

 


http://www.ngui.cc/el/5179137.html

相关文章

在 O(1) 时间内删除链表节点

解题思路 ① 如果该节点不是尾节点&#xff0c;那么可以直接将下一个节点的值赋给该节点&#xff0c;然后令该节点指向下下个节点&#xff0c;再删除下一个节点&#xff0c;时间复杂度为 O(1)。② 如果链表只有一个节点&#xff0c;那么直接② 否则&#xff0c;就需要先遍历链表…

题目描述 一个链表中包含环,请找出该链表的环的入口结点。要求不能使用额外的空间。

题目描述 一个链表中包含环&#xff0c;请找出该链表的环的入口结点。要求不能使用额外的空间。可以参见剑指offer上的原题。代码如下&#xff1a; package cn.cqu.edu;public class NodeOfLoop {class ListNode {int val;ListNode next null;ListNode(int val) {this.val v…

目标检测中mAP的定义

作者&#xff1a;nowgood 链接&#xff1a;https://www.zhihu.com/question/53405779/answer/506000532 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 目标检测中衡量识别精度的指标是mAP&#xff08;mean averag…

java jdk中的动态代理和Cglib中的动态代理的解析

为什么要用动态代理&#xff1f; 因为静态代理需要额外编写代理类&#xff0c;对于每一个要代理的对象&#xff0c;都要书写一个额外的代理类。 使用代理的原因&#xff1f; 有些类是不能够直接访问的或者有些访问要经过特殊处理。 1. Java JDK中的动态代理 java jdk中的动态…

求1+2+3+4+5+..+n

题目描述 求123...n&#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&#xff09;。 其主要思想是递归&#xff0c;这个程序很美。 package cn.cqu.edu;public class Sum_Solution1 {public int Sum_Solution(in…

tomcat运行java web时,报这个错:org.springframework.beans.factory.BeanCreationException

具体出错信息如下: 严重: StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException: Error creating bean with name userController: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.Bea…

eclipse下springmvc+spring+maven+mybatis+mysql的搭建,并实现增删改查

eclipse下SpringMVC+Maven+Mybatis+MySQL项目搭建 这篇文章主要讲解在eclipse环境下SpringMVC+Maven+Mybatis+MySQL的项目搭建过程。 创建Maven工程。右击-->New->Other 点击->Manven Porject 点击->勾选快速框架 输入项目名,包(Packaging,如果只是普通的项目,…

大数据笔试面试题

问题&#xff1a; 有一个包含20亿个全是32位整数的大文件&#xff0c;在其中找到出现次数最多的数&#xff0c;但是内存限制只有2G. 解题思路&#xff1a;先将这个20亿个整数进行哈希分流&#xff0c;比如说分别分流到16个小文件中&#xff0c;然后用哈希表分别计算出每一个小…

c/c++中动态内存分配与回收与从void*类型隐式转换为int*类型

最常见的差异之一是,C允许从void*隐式转换到其它的指针类型,但C++不允许。下列是有效的C代码。从void*类型隐式转换为int*类型,但要使其在C和C++两者皆能运作,就需要使用显式转换。 c语言版本的: #include <stdio.h> #include <stdlib.h>#define high 2 #de…