• 方法作业


    1. 设计思路

    建立组合数,递推,递归函数,在主函数中进行调用,

    1. 流程图

     

    1. 源代码

    import java.util.Scanner;

    public class Yanghui {

        public int Jiecheng(int i){ 

               if(i==1||i==0)

               {

                      return 1;

               }

               return i*Jiecheng(i-1);

              

        }

        public int Ditui(int i,int j)

        {

            int a[][]=new int[100][100];       

            a[0][0]=1;

            int result=1;                       

            for(int p=1;p<100;p++)

                   for(int q=0;q<=p;q++)

                   {  

                          if(q==0||p==q)          

                                 {

                                 a[p][q]=1;

                                 }

                          else

                              a[p][q]=a[p-1][q-1]+a[p-1][q];   

                          if(p==i&&q==j)              

                                 {

                                 result=a[p][q];

                                 break;

                                 }

                         

                   }

               return result;

        }

        public int Zuhe(int i,int j)

        {

               if(i==0||j<=1||i==j)

               {

                      return 1;

               }

               return Zuhe(i-1,j-1)+Zuhe(i-1,j);

        }

           public static void main(String[] args) {

                  // TODO Auto-generated method stub

                  Yanghui y=new Yanghui();

                  System.out.println("请输入组合数下标和行标");

                  Scanner input=new Scanner(System.in);

                  int hang=input.nextInt();                  

                  int lie=input.nextInt();                  

                  int fenzi,fenmu;

                  fenzi=y.Jiecheng(hang);                  

                  fenmu=y.Jiecheng(lie)*y.Jiecheng(hang-lie);     

                  System.out.println("阶乘结果:"+fenzi/fenmu+" ");  

                  System.out.println("递推计算结果:"+y.Ditui(hang, lie)+" ");

            System.out.println("递归计算结果:"+y.Zuhe(hang+1, lie+1)+" ");

           

                  }

    }

    1. 截图

     

    1. 设计思路

    移动n个盘子经历(2~n-1)步,调用递归hanoi,终止条件为参数n的值是1,执行xày的操作,

    1. 流程图

     

    1. 源代码

    import java.util.Scanner;

    public class Hanoi {

      public void Hnt(int a,char one,char two,char three){ 

             if(a==1)

             move(one,three);

             else

             {

                    Hnt(a-1,one,three,two);  

                    move(one,three);

                    Hnt(a-1,two,one,three);

             }

      }

      public void move(char x,char y){

             System.out.println(x+"->"+y);

      }

      public static void main(String[] args) {

             // TODO Auto-generated method stub

             Hanoi h=new Hanoi();

             Scanner input=new Scanner(System.in);

             System.out.print("请输入初始盘子数量:");

             int num=input.nextInt();

             h.Hnt(num,'1','2','3');

      }

    }

    1. 截图

     

    1. 设计思路

    输入字符先判断长度,符合在判断首字符和尾字符,在进行下一个字符的判断。

    1. 流程图

                  

    1. 源代码

    import java.util.Scanner;

    public class Huiwen {

       public int Hui(String str,int length,int star,int stop){

              if(length==0||length==1)

              {

                     return 1;

              }

              if(str.charAt(star)!=str.charAt(stop))

              {

                     return 0;

              }

              else

                     {

                     return Hui(str,length-2,star+1,stop-1);

                     }

                    

       }

       public static void main(String[] args) {

              // TODO Auto-generated method stub

              Scanner input=new Scanner(System.in);

              String s=input.nextLine();

              Huiwen hui=new Huiwen();

              int l=s.length();

              if(hui.Hui(s, l, 0, l-1)==1)

              {

                     System.out.println("是回文字符串");

              }

              else

                     System.out.println("不是回文字符串");

                    

       }

    }

    1. 截图

     

  • 相关阅读:
    WP8日历(含农历)APP
    NHibernate3剖析:Mapping篇之集合映射基础(2):Bag映射
    初探springmvc
    树的子结构
    Java内存分析
    java8_api_misc
    iOS开发多线程篇 09 —NSOperation简单介绍
    CALayer1-简介
    NSCharacterSet
    iOS 音频开发
  • 原文地址:https://www.cnblogs.com/wmy-666/p/7660739.html
Copyright © 2020-2023  润新知