面试题:(源自《剑指offer》) 输入数字n,按顺序打印出从1到最大的n位十进制数。比如:输入3,则打印出1、2、3一直到最大的3位数999. [陷阱]:这个题目很容易想到的办法就是先求出最大的数。然后循环输出就可以了。 #include<stdio.h> #include<string.h> #include<stdbool.h> #include<stdlib.h> void my_sprintf(char * arr, int len) { bool start = true; for (int j = 0; j < len; j++) { if (arr[j] != '0') { start = false; } if (!start) { printf("%c", arr[j]); } } printf("\n"); } void tranf(char *arr, int len, int index) { if (index == len - 1) { my_sprintf(arr, len); return; } for (int i = 0; i < 10; i++) { arr[index + 1] = '0' + i; tranf(arr, len, index + 1); } } void start(int n) { if (n <= 0) return; char *arr = (char *)malloc((n+1)*sizeof(char)); arr[n] = '\0'; for (int i = 0; i < 10; i++) { arr[0] = i + '0'; tranf(arr, n, 0); } free(arr); } int main() { //char arr[10]; int num = 0; //int len = strlen(arr); scanf_s("%d", &num); start(num); system("pause"); return 0; }
打印1到最大的n位数。
精选 转载文章标签 打印1到最大的n位数。 文章分类 C/C++ 后端开发
上一篇:区分数组指针和指针数组
下一篇:操作系统实验之作业调度算法
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
10、打印1到最大的n位数
()() () ()【Note】:
剑指offer git #include 字符串 -
65 输出1 到最大的N 位数
/*数(Ugly Number)。例
i++ 进制 #include -
打印从1到最大的n位数
面试题:输入数值n,打印从1到最大的n位数,例如输入n=3,
#include ios 大整数 位运算 字符数组