题解 | #打印从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++#
查看16道真题和解析