* 题目:输入数字n,按顺序打印出从1到最大的n位十进制数。
* 比如,输入3,则打印出1,2,3,.....,一直到最大的3位数即999。
* +1打印
* @since 2016-8-18
*/
{
public static void main(String[] args)
{
Main test = new Main();
int n = 4;
test.PrintMaxOfNDigits(n);
}
private void PrintMaxOfNDigits(int n)
{
int[] arr = new int[n];
while (CheckNumber(arr))
{
PrintNumber(arr);
}
}
private void PrintNumber(int[] arr)
{
int i = 0;
while (arr[i] == 0)
{
i++;
}
for (; i < arr.length; i++)
{
System.out.print(arr[i]);
}
System.out.print("\t");
}
private boolean CheckNumber(int[] arr)
{
arr[arr.length - 1] += 1;
for (int i = arr.length - 1; i >= 0; i--)
{
if (arr[i] == 10)
{
if (i == 0)
{
return false;
}
arr[i] = 0;
arr[i - 1] += 1;
}
else
{
return true;
}
}
return false;
}
}
/**
* 题目:输入数字n,按顺序打印出从1到最大的n位十进制数。
* 比如,输入3,则打印出1,2,3,.....,一直到最大的3位数即999。
* 全排列打印
* @author meng
* @since 2016-8-18
*/
public class Main
{
public static void main(String[] args)
{
Main test = new Main();
int n = 4;
int[] arr = new int[n];
test.PrintMaxOfNDigits(arr,0);
}
private void PrintMaxOfNDigits(int[] arr,int index)
{
if(index==arr.length-1){
for(int i=0;i<10;i++){
arr[index]=i;
PrintNumber(arr);
}
return;
}
for(int i=0;i<10;i++){
arr[index]=i;
PrintMaxOfNDigits(arr,index+1);
}
}
private void PrintNumber(int[] arr)
{
int i = 0;
while (arr[i] == 0)
{
i++;
if(i==arr.length){
return;
}
}
for (; i < arr.length; i++)
{
System.out.print(arr[i]);
}
System.out.print("\t");
}
}