题目描述:
给定一个数字N,打印从1到最大的N位数。
输入:
每个输入文件仅包含一组测试样例。
对于每个测试案例,输入一个数字N(1<=N<=5)。
输出:
对应每个测试案例,依次打印从1到最大的N位数。
样例输入:
1
样例输出:
1
2
3
4
5
6
7
8
9
/*********************************
* 日期:2013-11-11
* 作者:SJF0115
* 题号: 题目1515:打印1到最大的N位数
* 来源:http://ac.jobdu.com/problem.php?pid=1515
* 结果:AC
* 来源:剑指Offer
* 总结:
**********************************/
#include<iostream>
#include<stdio.h>
#include<malloc.h>
#include<string>
using namespace std;
/*
* n 最大的n位
* index 递归下标
*/
void FullPermutation(char *number,int n,int index){
int i;
//最后一位停止递归生成一种全排列
if(index == n){
int flag = 1;
for(i = 0;i < n;i++){
//排除前导0
if(flag && number[i] == '0'){
continue;
}
else{
flag = 0;
printf("%c",number[i]);
}
}
if(flag == 0){
printf("\n");
}
return;
}
else{
for(i = 0;i < 10;i++){
number[index] = i + '0';
FullPermutation(number,n,index + 1);
}
}
}
void OutPutNumber(int n){
if(n < 0){
return;
}
else{
char *number = new char[n + 1];
number[n] = '\0';
//全排列
FullPermutation(number,n,0);
}
}
int main()
{
int i,n;
while(scanf("%d",&n) != EOF){
OutPutNumber(n);
}
return 0;
}
【解析】
上题完全可以看成N个数的全排列
分享到:
相关推荐
# Python实现《剑指offer》 部分代码自己添加了一些测试用例, 或者自己添加了一些功能 1. 初级程序员注重算法和数据结构 2. 事先做好准备,对工作有热情 3. 面试过程放松。不要急于写代码,了解清楚所要解决的问题,...
《剑指Offer》 1. 赋值运算函数 2. 单例设计模式 3. 二维数组中查找目标值 4. 替换字符串中的空格 5. 从尾到头打印链表 6. 由前序和中序遍历重建二叉树 7. 用两个栈实现队列 8. 求旋转数组的最小数字 9. ...
剑指Offer(Python多种思路实现):打印从1到最大的n位数 面试17题: 题目:打印从1到最大的n位数 题:输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1、2、3一直到最大的3位数999. 解题思路一:...
面试题12 打印1到最大的n位数 面试题13 O(1)时间删除链表结点 面试题14 调整数组顺序使寄数位于偶数前面 3.4 代码的鲁棒性 面试题15 链表中倒数第k个结点 面试题16 反转链表 面试题17 合并两个排序的链表 面试题18 ...
打印从1到最大的n位数(溢出) -> 没找到 √删除链表的节点 ->(简单版) ->(升级版) ×正则表达式匹配 -> ×表示数值的字符串 -> √调整数组顺序使奇数在偶数前 -> √链表中倒数第K个节点 -> √链表中环的入口...
剑指 Offer 44. 数字序列中某一位的数字解题思路复杂度分析时间复杂度:O(logN),所求数位 n 对应数字 num 的位数 digit 最大为 O(l
sword-for-offer 使用Python3用pythonic的方式实现《剑指Offer 第二版》中的题目。拒绝直接“翻译”java等实现。代码有些并非原创,搬运了一些...17 打印从1到最大的n位数 18 删除链表中的节点 19 正则表达式 20 表示
java lru leetcode fucking leetcode by PY and JAVA ...打印从1到最大的n位数 简单 剑指offer18 删除链表的节点 简单 剑指offer19 正则表达式匹配 困难 剑指offer20 表示数值的字符串 中等 剑指offe
剑指offer-Java题解 二维数组中的查找 - [行列递增的二维数组搜索]- leetcode 240 替换空格 从尾到头打印链表 重建二叉树 - [用前序和中序遍历序列构建二叉树] - leetcode 105 用两个栈实现队列 - [使用栈实现队列] ...
leetcode迷宫问题 LeetCode之剑指offer系列刷题 剑指offer系列题目列表(C++实现) 题目名称和题号 题目链接 ...面试题17:打印从1到最大的n位数 +2 字符串+指数 面试题18:删除链表的节点 +2 双指
leetcode中国 LeetCode 刷题记录 分类 二维数组 题目名称 ...打印从1到最大的n位数 Y Y Y 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Y Y Y 剑指 Offer 24. 反转链表 Y Y Y 剑指 Offer 25. 合并
剑指Offer(Python多种思路实现):把数组排成最小的数 面试45题: 题:把数组排成最小的数 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32...
LeetCode、剑指Offer ##LeetCode 程序目录 1-100 LC1:给定一个有序数组,和一个整数target,找到两个元素,使其等于target(LC167类似) LC2:两个链表位数相加生成新的链表 LC3:找到最长不重复子串(滑动窗口思路) LC11...
打印从1到最大的n位数 5、21. 调整数组顺序使奇数位于偶数前面 6、29. 顺时针打印矩阵 7、39. 数组中出现次数超过一半的数字 8、57. 和为s的两个数字 9、57-II. 和为s的连续正数序列 10、 58-I. 翻转单词顺序 11、58...
剑指offer 1.二位数组中的查找 2.替换空格 3.单链表:从尾到头打印链表 4.二叉树:重建二叉树 5.栈:用两个栈实现队列 6.旋转数组的最小数字 7.斐波那契数列 8.跳台阶 9.变态跳台阶 10.矩形覆盖 11.二进制中1的个数 12....
打印从1到最大的n位数 第一大类--二叉树 解题密码如下: void traverse(TreeNode* root) { // 前序遍历 traverse(root->left) // 中序遍历 traverse(root->right) // 后序遍历 } LeetCode 94 二叉树的中序遍历 ...
打印从1到最大的n位数(溢出) -> 没找到 √删除链表的节点 ->(简单版) ->(升级版) ×正则表达式匹配 -> ×表示数值的字符串 -> √调整数组顺序使奇数在偶数前 -> √链表中倒数第K个节点 -> √链表中环的入口...
打印1到最大的n位数 难 栈和队列 用两个栈实现队列 中 链表 从尾到头打印链表 易 树 重建二叉树 难 递归和循环 斐波那契数列 易 递归和循环 跳台阶 中 递归和循环 变态跳台阶 中 递归和循环 矩形覆盖 中 位运算 二...
打印从1到最大的n位数 面试题18 删除链表的节点 面试题19 正则表达式匹配 面试题20 表示数值的字符串 面试题21 调整数组顺序使奇数位于偶数前面 面试题22 链表中倒数第k个节点 面试题24 反转链表 面试题25 合并两个...
数据结构与算法的知识点demo,剑指offer题库刷题,以及leetcode的刷题记录 剑指offer 36. 两个链表的第一个公共节点 问题描述 输入两个链表,找出它们的第一个公共结点。 解题思路 如果两个链表有公共节点,那么最后...