得到最大值,依次赋值
class Solution {
public:
vector<int> printNumbers(int n) {
string s="";
while(n){
s.push_back('9');
n--;
}
int sum=atoi(s.c_str());
cout<<sum;
vector<int> res(sum,0);
for(int i=0;i<sum;i++)
res[i]=i+1;
return res;
}
};
考虑大数
使用全排列,固定高位,递归去改变低位
#include<sys/types.h>
#include<stdlib.h>
#include<stdio.h>
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<unistd.h>
#include<vector>
using namespace std;
int number=0;
void getRes(string &res,int n,int i){
if(i==n){
int index=res.find_first_not_of("0");
if(index==string::npos) return ;
number++;
cout<<number<<" ";
cout<<res.substr(index,res.size()-index)<<endl;
return ;
}
for(char ch='0';ch<='9';ch++){
res[i]=ch;
getRes(res,n,i+1);
}
}
int main(){
int n=3;
string s(n,'0');
getRes(s,n,0);
}