题解 | #打印从1到最大的n位数#

打印从1到最大的n位数

https://www.nowcoder.com/practice/4436c93e568c48f6b28ff436173b997f

//本题题目不是很清晰,先优化一下题目

//输入数字 n ,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3 ,则打印出 1、2、3 一直到最大的 3 位 数 999 。
//把这些值存入一个数组中,并且写一个函数printNumbers(int n, int* returnSize)
//返回值为该数组的首元素地址,便于其他函数对该数组进行打印, n 为输入的数字, 假设 int* returnSize = &num,returnSize 为该数组的元数个数num的地址 -- 是数组元素个数不是数组行数,一维数组就一行还行数呢
//n 为正整数,且1 <= n <= 5

//该数组为全局变量,或定义在主函数中
static int arr[100000];
//返回值为地址,创建指针来接收,returnSize为数组元素个数的地址
int* printNumbers(int n, int* returnSize) {
    int a = 1;
    int i = 0;
    //得到10的n次方  math.h
    a = pow(10, n);
    //for (i = 0; i < n; i++) {
    //    a *= 10;
    //}

    for (i = 1; i <= a - 1; i++) {
        arr[i - 1] = i;
    }
    //对元素个数的地址进行解引用,传值
    *returnSize = a - 1;
    return arr;
}


#C/C++#
全部评论

相关推荐

威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
评论
4
收藏
分享
牛客网
牛客企业服务