zoukankan      html  css  js  c++  java
  • 打印从1到最大的n位数

    package structure;
    
    import org.junit.Test;
    
    /*打印从1到最大的n位数*/
    public class print1ToMaxOfNDigits {
      public void print1(int n){
          if(n<=0)return;
          int[] a=new int[n];
          System.out.print(0);//打印第一个0
          for(int i=0;i<10;i++){
              a[0]=i;//赋值,这个循环让为最高位赋值
              print2(a,n,0);//调用print2方法,对剩余的位赋值
          }
      }
      public void print2(int[] a,int len,int index){
          //进行递归的方法
          if(index==len-1){//递归返回的条件为最后一次赋值的位为数组的最后一个下标
              printNumber(a);//数组最后一个下标赋值完成,则可以进行打印数组
              return;
          }
          for(int i=0;i<10;i++){
              a[index+1]=i;//为下一位进行赋值
              print2(a,len,index+1);//递归调用print2方法,从而为下一位进行赋值
          }
      }
      public void printNumber(int[] a){
          int i=0;
          for(;i<a.length;i++){
              if(a[i]!=0){
                  break;//从不为0的下标开始打印数组
              }
          }
          for(int j=i;j<a.length;j++){
              System.out.print(a[j]);
          }
          System.out.println();
      }
      @Test
        public void test(){
          print1(4);
      }
    
    }

    该算法采用递归的方式,打印从1到最大的n位数,即利用一个大小为n的数组,采用递归的方式进行一个0-9的全排列。

  • 相关阅读:
    WEB前端开发规范文档
    MySQL笔记系列:数据库概述
    MySQL笔记系列:MySQL架构
    Centos6.4中Apache,MySQL,PHP 的安装
    Linux面试总结分享
    NFS网络文件共享服务介绍及案例
    Linux命令(7):cp
    Linux命令(6):cat
    Linux命令(5):vi
    Linux命令(4):touch
  • 原文地址:https://www.cnblogs.com/UalBlog/p/10963365.html
Copyright © 2011-2022 走看看