打印1到最大的n位数。
2015-11-30 19:16
302 查看
面试题:(源自《剑指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 = '\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; }
相关文章推荐
- perl vim美化
- 杭电题002
- 老陈和小石头
- 横向领导力--成长有感
- Reactor VS Proactor 模式
- Android 图文混排(EditText)
- Orcle 主键自增(序列sequence、触发器trigger、主键primary)
- hdu 5587--Array
- 应用程序国际化
- 工业4.0带来了什么
- centos反编译APK包
- googletest 学习笔记
- centos反编译APK包
- ps如何制作霓虹字体
- android 沉浸模式记录
- 通过Sql语句和android封装好的方法控制SQLite数据库增删改查
- IOS-33-报错:No matching provisioning profiles found: No provisioning profiles matching a
- Ten Tips for Writing CS Papers, Part 1
- 举例介绍重构(译)
- Flask