打印从1到N的数

来源:互联网 发布:java求圆锥圆柱体积 编辑:程序博客网 时间:2024/06/06 03:58

输入:1 打印123456789

输入:2打印123456789-99


#include <stdio.h>#include <stdlib.h>#include <string.h>void printnumber(char *number){bool isBeginning0 = true;int nlength = strlen(number);for(int i=0;i<nlength;++i){if(isBeginning0&&number[i]!='0')isBeginning0 = false;if(!isBeginning0)printf("%c",number[i]);//printf("\t");}}void allsort(char *number,int length,int index){if(index==length){//index默认为0,如果长度为1的话那么就1-9直接输出 printnumber(number);//这是递归结束的标志 当index索引变成length的时候 return ; }for(int i=0;i<10;++i){//否则进入循环 number[0+1] 进入递归 number[index] = i+'0';allsort(number,length,index+1);}}//再次改进 使用大数 字符串数组装数 全排列递归 void printfmaxofrange3(int n){if(n<=0) return;//int i=0;char *number = new char[n+1];//创造n+1的空间 //char *number = (char *)malloc(sizeof(char *)*(n+1));number[n] = '\0';//最后一位赋值上字符串结束标识 allsort(number,n,0);//在用递归进行下一位的全排列 }int main(){printfmaxofrange3(3);return 0;}


0 0
原创粉丝点击