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+"+"); //递归调用
}
}
}
}
}
程序很简单,一看就懂,我就不多废话了。

浙公网安备 33010602011771号