JAVA编程!!急急急!!!再插三根鸡毛!!!!·

整数划分问题:写出将一个正整数年n表示成一系列正整数之和的JAVA程序。

求求大家了 我实在是不会了~~!!
拜托拜托~!!!!!
整数划分问题:写出将一个正整数n表示成一系列正整数之和的JAVA程序。

比如6 划分为六个一相加,或者三个2相加,或者1+2+3
就是这样了

呵呵

试试这个程序.大概思路是这样的.细节可能有错.我还没运行过.自己改一下吧
import java.util.*;
public class lin
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);

System.out.print("input the year:");
int n=in.nextInt();

int[] factor=new int[100];
int[] exps=new int[100];

for(int i=0,work=n;(work&0X01UL)==0&&work>1;work>>=1,i++)
;
save_factor(2,i);
for(int k=3;k<=work;k+=2)
{for(i=0;work%k==0&&work>1;work/k,i++)
save_factor(k,i);
}

public static void save_factor(fact,exp)
{
int i;
if(exp>0)
factor[count]=fact, exps[count++]=i;
}

for(i=0;i<count;i++)
{
S+=factors[i]*exps[i];
}

System.out.println("");
System.out.print("result"+S);

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-07-16
可以这么来理解:
如果给定一个数N,那么它最多由n个1相加得到N,所以它最多的‘根’为n个,为此,可以将该问题看成是对一个方程的求解X1+X2+...+Xn=N,其中X1,X2,...,Xn为正整数

具体的代码实现相信应该没什么问题吧,其复杂度是可以接受的
不知你是否理解了
第2个回答  2006-07-04
再说详细些
第3个回答  2006-07-04
详细点
第4个回答  2006-07-04
什么意思?没看明白,尽量写的详细点
第5个回答  2006-07-11
递归算法?

JAVA编程!!急急急!!!再插三根鸡毛!!!·
试试这个程序.大概思路是这样的.细节可能有错.我还没运行过.自己改一下吧 import java.util.*;public class lin { public static void main(String[] args){ Scanner in=new Scanner(System.in);System.out.print("input the year:");int n=in.nextInt();int[] factor=new int[100];int[...

C++的学习应建立在那些基础上啊!(加三根鸡毛)
首先,我觉得C是学编成初学者的基础,它是打开你通向编程之路的大门。如果你还没学过C,还是要推荐你先学C。然后,要告诉你C++实际上就是C的扩展。C++是面向对象的语言,要重点掌握类、继承、多态性等概念。这是面向对象编成语言的核心。最后,掌握编成语言只是一个初步,你想编出高效简洁的程序,...

高难度问题急求答案,200分再追加20分
C也是BELL实验室发明,是在C上增加了面向对象特性,是现在使用最广泛的程序设计语言。 Java 最新的面向对象程序设计语言,面向internet,Sun公司发明,可以一次编程,到处运行。语言分为第一语言和第二语言。一个人从小通过和同一语言集团其它成员(如父母、亲属、周围的人们)的接触,自然学到并熟练运用于交际和思维过程中的...

电子书放在手机文件为什么找不到?格式对的!!!急急鸡毛急
如果用电脑下载的,放到Kjava文件夹下,如果直接用手机下载,下载完成之后会提示安装,安装完了在百宝箱中打开即可

相似回答
大家正在搜