您的位置:首页 > Web前端

[剑指offer-1515]打印1到最大的N位数

2016-02-10 21:21 441 查看
题目描述:

给定一个数字N,打印从1到最大的N位数。

输入:

每个输入文件仅包含一组测试样例。

对于每个测试案例,输入一个数字N(1<=N<=5)。

输出:

对应每个测试案例,依次打印从1到最大的N位数。

样例输入:

1

样例输出:

1

2

3

4

5

6

7

8

9

[code]
#include <stdio.h>
#include <stdlib.h>

void printNumber(char* number,int length){
    int i =0;
    while(number[i] == '0'){
        i++;
    }
       puts(number+i);
}
void pemutationPrintNum(char* number , int length , int index){
    if(index == length){
        printNumber(number,length);
        return;
    }
    for (int i = 0 ; i < 10 ; i++) {
        number[index] = i+'0';
        pemutationPrintNum(number, length, index+1);
    }
}
void print1ToMax(int n){
    if(n<=0)
        return;
    char* number  = (char*)malloc((n+1)*sizeof(char));
    number
 = '\0';
    pemutationPrintNum(number,n,0);

}

int main(int argc, const char * argv[]) {
    int n;
    scanf("%d",&n);
    print1ToMax(n);
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: