输入n,打印1到最大的n位数
//#include<iostream>//#include<cstdlib>//using namespace std;////void PRint1ToMaxOfNDigits(int n)////{//// int num=1;//// int i=0;//// while (i++<n)//// num*=10;//// for(i=1;i<num;i++)//// {//// printf("%d/t",i);//// }////}//bool Increment(char* num)//{// bool isOverflow=false;// int TakeOver=0;// int Length=strlen(num);// for(int i=Length-1;i>=0;i--)// {// int sum=num[i]-'0'+TakeOver;// if(i==Length-1)// sum++;// if(sum>=10)// {// if(i==0)// isOverflow=true;// else// {// sum-=10;// TakeOver=1;// num[i]='0'+sum;//// }// }// else// {// num[i]='0'+sum;// break;// }// }// return isOverflow;//}//void printNum(char* num)//{// bool isBegining0=true;// int Length=strlen(num);// for(int i=0;i<Length;i++)// {// if(isBegining0&&num[i]!='0')// isBegining0=false;// if(!isBegining0)// printf("%c",num[i]);// }// printf("/t");//}//void Print1ToMaxOfNDigits(int n)//{// if(n<=0)// return;// char* num=new char[n+1];// memset(num,'0',n);// num[n]='/0';// while (!Increment(num))// {// printNum(num);// }// delete[] num;//}//int main()//{// Print1ToMaxOfNDigits(10);// system("pause");// return 0;//}//#include<iostream>//#include<cstdlib>//#include<cassert>//using namespace std;//bool Increment(char* num)//{// bool isOverFlow=false;// int TakeOver=0;// int Length=strlen(num);// for (int i=Length-1;i>=0;i--)// {// int Sum=num[i]-'0'+TakeOver;// if (i==Length-1)// {// Sum++;// }// if(Sum>=10)// {// if(i==0)// isOverFlow=true;// else// {// Sum-=10;// TakeOver=1;// num[i]='0'+Sum;// }// }// else// {// num[i]='0'+Sum;// break;// }// // }// return isOverFlow;//}//void printNum(char* num)//{// bool isBegin0=true;// int Length=strlen(num);// for(int i=0;i<Length;++i)// {// if(isBegin0&&num[i]!='0')// {// isBegin0=false;// }// if(!isBegin0)// {// cout<<num[i];// }// }// cout<<"/t";//}////void Print1ToMaxOfNDigits(int n)//{// if(n<=0)// return;// char* num=new char[n+1];// memset(num,'0',n);// num[n]='/0';// while (!Increment(num))//Increment是将字符串表示的num+1// {// printNum(num);//打印num// }// delete[] num;//}//int main()//{// Print1ToMaxOfNDigits(5);// system("pause");// return 0;//}#include<iostream>#include<cstdlib>#include<cassert>using namespace std;void printNum(char* num){ bool isBegin0=true; int Length=strlen(num); for(int i=0;i<Length;++i) { if(isBegin0&&num[i]!='0') { isBegin0=false; } if(!isBegin0) { cout<<num[i]; } } cout<<"/t";}void Print1ToMaxOfNDigitsRecursively(char* num,int length,int index){ if(index==length-1) { printNum(num); return; } for(int i=0 ;i<10;i++) { num[index+i]=i+'0'; Print1ToMaxOfNDigitsRecursively(num,length,index+1); }}void Print1ToMaxOfNDigits(int n){ if(n<=0) return; char* num=new char[n+1]; num[n]='/0'; for (int i=0;i<10;++i) { num[0]=i+'0'; Print1ToMaxOfNDigitsRecursively(num,n,0); } delete[] num;}int main(){ Print1ToMaxOfNDigits(2); system("pause"); return 0;}
新闻热点
疑难解答