首页 > 试题广场 >

打印从1到最大的n位数

[编程题]打印从1到最大的n位数
  • 热度指数:43183 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
1. 用返回一个整数列表来代替打印
2. n 为正整数,0 < n <= 5
示例1

输入

1

输出

[1,2,3,4,5,6,7,8,9]
import java.util.*;

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 最大位数
     * @return int整型一维数组
     */
    public int[] printNumbers (int n) {
        int max = 1;
        while(n>0){
             max *=10;
             n--;
        }
        int[] num = new int[max-1];
        for(int i =0;i<num.length;i++){
            num[i]=i+1;
        }
        return num;

    }
}
发表于 2022-11-03 16:33:53 回复(0)
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 最大位数
     * @return int整型一维数组
     */
    public int[] printNumbers (int n) {
        // write code here
        int sum=1;
        for(int i=1;i<n+1;i++){
              sum*=10;
        }
        int []arr=new int[sum-1];
        for(int j=1;j<sum;j++){
             arr[j-1]=j;
        }
      
       return arr;
    }
}
发表于 2022-10-07 15:16:49 回复(0)
import java.util.*;

public class Solution {
    public int[] printNumbers (int n) {
        StringBuilder sb=new StringBuilder();
        for(int i=0;i<n;i++){
            sb.append("9");
        }
        int max=Integer.parseInt(sb.toString());
        int[] arr=new int[max];
        for(int i=0;i<max;i++){
            arr[i]=i+1;
        }
        return arr;
    }
}

发表于 2022-09-19 22:02:02 回复(0)
小白路过
public class Solution {

    public int[] printNumbers (int n) {

        int[] nums;
        int i = 1;
        int count = 10;
        if (n > 1) {
            for (i = 1; i < n; i++) {
                count *= 10;
            }
        }
        nums = new int[count - 1];
        for (i = 1; i < count; i++) {
            nums[i - 1] = i;
        }
        return nums;
    }
}
发表于 2022-08-28 18:26:58 回复(0)
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 最大位数
     * @return int整型一维数组
     */
    public int[] printNumbers (int n) {
        // write code here
        int max = 1;
        for(int i = 1;i <= n;i++){
            max = max * 10;
        }
        max = max - 1;
        int[] toArray = new int[max];
        for(int j = 1;j <= max;j++){
            toArray[j -1] = j;
        }
        return toArray;
    }
}

发表于 2022-08-25 14:16:20 回复(0)
为什么这样做的性能那么差?
public int[] printNumbers (int n) {
    // write code here
    int max = (int) (Math.pow(10, n));
    return IntStream.range(1, max).toArray();
}


发表于 2022-08-25 00:52:58 回复(0)
public int[] printNumbers (int n) {
      int max=1;
        for(int i=1;i<=n;i++){
           max = max * 10;
        }
        max=max-1;
        int []arr=new int[max];
        for(int i=1;i<=max;i++){
            arr[i-1]=i;
        }
        return arr;
    }


发表于 2022-07-14 11:07:05 回复(0)
public int[] printNumbers (int n) {
        // write code here
        int len = (int) Math.pow(10,n); //不是10 ^ n 这种方式
        int index = 1;
        int[] res = new int[len - 1];
        for (int i = 0; i < res.length ; i++) {
            res[i] = index ++;
        }
        return res;
    }

发表于 2022-06-02 17:42:59 回复(0)
import java.util.*;
import java.math.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 最大位数
     * @return int整型一维数组
     */
    public int[] printNumbers (int n) {
        int max = (int)(Math.pow(10,n) - 1);
        int[] arr=  new int[max];
        int j = 0;
        for(int i = 1;i <= Math.pow(10,n) - 1;i++){
            arr[j++] = i;
        }
        return arr;
    }
}

发表于 2022-05-09 21:25:11 回复(0)
给的题解是来搞笑的吗?直接暴力的话面试官会让你回去等消息的,而且肯定是要考虑大数情况的
发表于 2022-04-26 12:30:11 回复(0)
import java.util.*;
public class Solution {
    public int[] printNumbers (int n) {
        int m = 9;
        for(int i = 2;i<=n;i++){
            m *=10;
            m+=9;
        }
        int[] arr = new int[m];
        for(int i = 1;i<=m;i++)
            arr[i-1] = i; 
        return arr;
    }
}

发表于 2022-04-07 20:18:30 回复(0)
    int pow = (int)Math.pow(10, n); 
    int[] arr=new int[pow-1]; 
    for(int i=0;i1;i++){
    arr[i]=i+1;
} return arr;
发表于 2022-03-26 23:41:05 回复(0)
public class Solution {
    public int[] printNumbers (int n) {
        // write code here
        int m=(int)Math.pow(10,n);
        int[] res=new int[m-1];
        for(int i=0;i<m-1;i++){
            res[i]=i+1;
        }
        return res;
    }
}

发表于 2022-03-21 11:07:02 回复(0)
解法1:暴力
import java.util.*;


public class Solution {
    public int[] printNumbers (int n) {
        // 解法1:暴力
        int ret[] = new int[(int)Math.pow(10,n)-1];
        for(int i=0;i<(int)Math.pow(10,n)-1;i++){
            ret[i]=i+1;
        }
        return ret;
    }
}

解法2:递归
import java.util.*;

public class Solution {
    int ret[];
    public int[] printNumbers (int n) {
        // 解法2:递归
        ret = new int[(int)Math.pow(10,n)-1];
        print(0);
        return ret;
    }
    public void print(int cur){
        // 终止递归
        if(cur==ret.length)
            return;
        // 打印
        ret[cur] = cur+1;
        // 递归
        print(cur+1);
    }
}
解法3:考虑大数
参见力扣题解

发表于 2022-02-04 14:36:35 回复(0)
 public int[] printNumbers (int n) {
        // write code here
        int count= (int) Math.pow(10.0,n)-1;
        int[] res=new int[count];
        for (int i = 0; i < count; i++) {
            res[i]=i+1;
        }
        return res;
    }
发表于 2022-01-03 12:49:04 回复(0)
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 最大位数
     * @return int整型一维数组
     */
    public int[] printNumbers (int n) {
        // write code here
        int max = 1;
        while(n>0){
            max *=10;
            n--;
        }
        int[] res = new int[max-1];
        while(max>1){
            res[max-2] =max-1;
            max--;
        }
        return res;
    }
}
发表于 2021-12-31 16:30:00 回复(0)
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 最大位数
     * @return int整型一维数组
     */
    public int[] printNumbers (int n) {
        // write code here
        ArrayList<Integer> list = new ArrayList<>();
        int count = 1;
        while ((String.valueOf(count).length() <= n)){
            list.add(count);
            count++;
        }
        int[] res = new int[list.size()];
        for (int i = 0; i < list.size(); i++){
            res[i] = list.get(i);
        }
        return res;
    }
}

发表于 2021-12-16 15:12:12 回复(0)
import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 最大位数
     * @return int整型一维数组
     */
    public int[] printNumbers (int n) {
        // write code here
        int maxNum = 9;
        
        while(--n>0){
            maxNum = maxNum*10 + 9;
        }
        int[] result = new int[maxNum];
        for(int i=0; i<maxNum; i++){
            result[i] = i+1;
        }
        return result;
    }
    
    /*
    //不考虑大数:
    class Solution {
    public int[] printNumbers(int n) {
        int max = (int)Math.pow(10,n);
        int[] ret = new int[max-1];
        for (int i=0;i<max-1;i++){
            ret[i]=i+1;
        }
        return ret;
    }
    */
    
}
    
}
发表于 2021-12-02 21:23:17 回复(0)