题解 | #打印从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++#