列表

详情


NC288. 打印从1到最大的n位数

描述

输入数字 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]

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 8ms, 内存消耗: 1284KB, 提交时间: 2022-02-09

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

C 解法, 执行用时: 8ms, 内存消耗: 1312KB, 提交时间: 2022-02-11

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 最大位数
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
static int arr[100000000] = { 0 };
int* printNumbers(int n, int* returnSize ) {
    // write code here
    int i=1;
    scanf("%d", &n);
    int param=0;
    param=pow(10,n)-1;
    for(i=1;i<=param;i++)
    {
        arr[i-1]=i;
    }
    *returnSize=i-1;
    return arr;
}








C 解法, 执行用时: 8ms, 内存消耗: 1320KB, 提交时间: 2022-02-10

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 最大位数
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
#include <math.h>
static int arr[100000];
int* printNumbers(int n, int* returnSize ) {
    int i = pow(10,n);
    int j;
    for(j = 1;j < i; j++)
      arr[j - 1] = j;
    *returnSize = --i;
    return arr;
}

C 解法, 执行用时: 8ms, 内存消耗: 1324KB, 提交时间: 2022-02-09

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 最大位数
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
static int q[99999];//static是全局变量的默认存储类,表示变量在程序生命周期内可见;
int* printNumbers(int n, int* returnSize ) {
    // write code here
    int m=0,a;
    
    for(int i=0;i<n;i++)
    {m+=9*pow(10,i);}
    for( a=1;a<=m;a++)
    {
        
        q[a-1]=a;
    }
    *returnSize=(a-1);
    return q;//这里返回的是数组首元素的地址
}//指针加了*是指地址里面的数不加是指地址,地址往后退就到下一个元素所在地址
//c里面^是异或运算符指数运算用pow( ,)
//数组不赋值默认是零

C 解法, 执行用时: 8ms, 内存消耗: 1328KB, 提交时间: 2022-02-10

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 最大位数
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */static int arr[100000];
int* printNumbers(int n, int* returnSize )
{
    int sum=0;
    int i=0;
    sum=pow(10,n);
    *returnSize=sum-1;
    for(i=0;i<*returnSize;i++)
    {
        arr[i]=i+1;
    }
    return arr;
}

上一题