剑指Offer之打印1到最大的N位数

简介:

题目描述:

给定一个数字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个数的全排列





目录
相关文章
|
前端开发 JavaScript 数据可视化
Vue项目打包完后如何自动上传至服务器
Vue项目打包完后如何自动上传至服务器
1387 0
Vue项目打包完后如何自动上传至服务器
|
Linux Shell 数据安全/隐私保护
Linux修改密码是提示“passwd: 鉴定令牌操作错误”问题的处理办法
今早忽然想修改一下一个普通用户的密码,root登录进去之后键入修改密码命令之后发现提示“passwd: 鉴定令牌操作错误”。
7672 0
|
9月前
|
编解码 网络协议
如何轻松地 rip 3D Blu-ray:详细步骤指南
随着3D电影和家庭影院的普及,越来越多的人希望将3D Blu-ray电影转换为数字文件,以便在多种设备上播放。本文介绍了使用DVDFab、MakeMKV+HandBrake和Leawo Blu-ray Ripper等软件轻松rip 3D Blu-ray的方法,帮助用户享受高质量的3D观影体验。这些工具不仅提供了便捷性和高质量的输出,还能节省存储空间。
541 9
|
11月前
|
SQL 中间件 关系型数据库
那些年,我们在Go中间件上踩过的坑
作者总结了过去在Go中间件上踩过的坑,这些坑也促进了阿里内部Go中间件的完善,希望大家学习本文后,不犯同样的错误。
|
Linux 开发者 iOS开发
Python PIP
Python PIP
204 0
|
开发工具 C++ 开发者
Qt Quick Image探秘:从底层原理到高级应用(一)
Qt Quick Image探秘:从底层原理到高级应用
442 0
|
JSON 前端开发 Java
SpringMVC之JSON数据返回与异常处理机制---全方面讲解
SpringMVC之JSON数据返回与异常处理机制---全方面讲解
361 0
|
设计模式 JavaScript Java
[设计模式Java实现附plantuml源码~结构型]处理多维度变化——桥接模式
[设计模式Java实现附plantuml源码~结构型]处理多维度变化——桥接模式
143 0
|
前端开发 JavaScript
🍊CSS如何设置同侧边框两种分层颜色
🍊CSS如何设置同侧边框两种分层颜色
970 0
🍊CSS如何设置同侧边框两种分层颜色
|
算法 小程序 Go
Golang 微信小程序加密数据解密算法实现
Golang 微信小程序加密数据解密算法实现
668 0