剑指offer 面试题12 打印1到最大的n个数
来源:互联网 发布:剪切走的数据能恢复吗 编辑:程序博客网 时间:2024/05/18 00:43
E:\arithmetic\PrintN
注意用int 或者long可能不能满足范围 所以要用char[], 注意字符串加1的进位问题及边界取值,打印时候前面有0不需打印出来。
#include <stdio.h>#include <string.h> void print1toMaxN(int n);int add(char *str, int n); void printStr(char *str, int n); int main(){ print1toMaxN(3); return 0; } void print1toMaxN(int n){ char *str = new char[n+1]; str[n] = '\0'; memset(str, '0', n); int flag = 0;while(!flag){flag = add(str, n);printStr(str, n);}/* test key code! char str1[] = "099"; printf("%d\n", add(str1, 3)); printf(str1);*/ delete []str; } int add(char *str, int n){ int flag = 0; str[n-1]++; if(str[n-1] > '9') flag = 1;int k = n-1; while(flag && (k >= 0)){ str[k--] = '0'; if(k<0)//logic!! { flag = 1; break; } str[k]++; if(str[k] <= '9'){ flag = 0; } } return flag; } void printStr(char *str, int n){int i = 0; int flag = 1;for(i = 0 ; i<n ; i++){if((str[i] == '0')&&(flag == 1))continue;flag = 0;printf("%c", str[i]);}printf("\t"); }
0 0
- 剑指offer 面试题12 打印1到最大的n个数
- offer面试题----打印1到最大的n位数
- 剑指offer面试题12:打印1到最大的n位数(1)
- 剑指offer 面试题12 打印1到最大的N位数
- [剑指offer][面试题12]打印1到最大的n位数
- 【剑指offer】面试题12:打印1到最大的n位数
- 剑指Offer:面试题12 打印1到最大的n位数
- 《剑指Offer》面试题12:打印1到最大的n位数
- 剑指offer 面试题12—打印1到最大的n位数
- 【剑指Offer学习】【面试题12 :打印1 到最大的n 位数】
- 《剑指Offer》学习笔记--面试题12:打印1到最大的n位数
- 剑指offer--面试题12:打印1到最大的n位数--Java实现
- 剑指Offer面试题12(Java版):打印1到最大的n位数
- 剑指offer面试题12-打印1到最大的n位数
- 《剑指Offer》面试题12:打印1到最大的n位数
- 剑指offer-面试题12:打印1到最大的n位数
- 剑指offer之面试题12:打印1到最大的n位数
- 剑指Offer 面试题12:打印1到最大的N位数 题解
- Maven的聚合和依赖
- HDU 3435 A new Graph Game(二分图最优匹配:有向环覆盖)
- XML解析
- Vim补全的一些事
- 海思c++架构
- 剑指offer 面试题12 打印1到最大的n个数
- poj-2282
- JSP九大隐式对象
- POJ 3693 Maximum repetition substring(后缀数组神题)
- hdu-1272 小希的迷宫
- 打不开 谷歌google 的办法
- 协议系列之TCP/IP协议
- 【算法导论学习-19】1个stack实现queue
- Python学习笔记-ubuntu安装setuptools及使用