C#版本整数划分问题

    前几天上C#课老师让用C#写个小程序,这个问题就是把n表示成一系列的正整数之和的表达式,然后输出来,我回想起来我以前学过的算法设计里面讲的递归问题,但是用的是c的思想编的,虽然说思想一样,都是用递归,但用C#实现我没在网上搜到,然后我就试着写了一下,大家看看如何。

 

class Program     {       

  static void Main(string[] args)        

{

Console.WriteLine("请输入你要分解的数:");       

      String str = "";            

      str = Console.ReadLine();          

      int n = Convert.ToInt32(str);          

      Program P = new Program();          

      P.fun(n-1 ,n ,str +"=");        

}            

      public void fun( int m,int n,String s ){          

        int j;  int i = m;                 

        if (i > n)

       {                    

            i = n;    

        }                 

for ( ; i >= 1; i--)                 

{                    

  j = n;                    

  j = j - i;                   

   if (j == 0)                

      {                        

  Console.WriteLine(s+i );              

        }                  

    else {                       

        fun (i,j,s+i+"+");  //递归调用           

         }                    

      }                

   }               

  }    

}

程序很简单,一看就懂,我就不多废话了。

 

 

 

你可能感兴趣的:(C#)