用求排列方法:
代码:
#include<iostream> using namespace std; //使用递归求解1 到最大的n位数 void print(char * number){ bool isBegin = true; int length = strlen(number); for(int i = 0; i < length; i ++){ if(isBegin && number[i] != '0') isBegin = false; if(!isBegin) printf("%c",number[i]); } printf("\t"); } void printRecursively(char * number,int length,int index){ if(index == length - 1){ print(number); return ; } for(int i = 0;i<10;i++){ number[index+1] = i + '0'; printRecursively(number,length,index+1); } } void printToMaxOfDigits(int n){ if(n <= 0){ return; } char * number = new char[n+1]; number[n] = '\0'; for(int i = 0; i< 10 ;i++) { number[0] = i +'0'; printRecursively(number,n,0); } delete[] number; } int main() { printToMaxOfDigits(3); return 0; }
使用递归求解1 到最大的n位数
时间: 2025-01-13 18:32:08