今天,嗨壳技术分享网给大家整理一些整数划分算法实现java语言(整数划分算法实现java语言运用)内容。
本篇文章给大家谈谈整数划分算法实现java语言,以及整数划分算法实现java语言运用对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、求一道java程序设计题(整数划分)
2、JAVA实现整数拆分算法,例如输入一个4会输出4 , 3 1, 2 2, 2 1
3、让计算机随机产生出10个两位正整数,然后按照从小到大的顺序显示出来 java语言
4、关于java整数划分并求出划分的个数的问题,有代码,能输出整数的划分,但输出的划分个数不对。
5、java实现 整数拆分 希望有个算法
求一道java程序设计题(整数划分)
这个可以用递归来实现。。。。。代码如下。。。还是想了很久弄出来的。。。。已经测试了的。。。希望能帮到你。。。
import
java.util.Scanner;
public
class
Test
{
public
static
void
huafenD(int
oldData,int
j,
int
n,StringBuffer
result){
StringBuffer
r
=
new
StringBuffer(result);
for(
int
i
=
j;i=n;i++){
if(i==ni!=oldData)
{
result.append(i);
System.out.println(result.toString());
result
=
new
StringBuffer(r);
}
else
if(i!=oldData){
result.append(i);
result.append(“+”);
huafenD(oldData,i,n-i,result);
result
=
new
StringBuffer(r);
}
}
}
public
static
void
main(String
args[])
{
Scanner
in
=
new
Scanner(System.in);
System.out.println(“请输入一个整数(1-10)”);
int
data
=
in.nextInt();
while(data1||data10){
System.out.println(“您的输入
不符合要求,请重新输入”);
data
=
in.nextInt();
}
if(data==1)System.out.println(“无需划分”);
else
{
StringBuffer
sb
=
new
StringBuffer();
huafenD(data,1,data,sb);
}
}
}
运行结果示例:
请输入一个整数(1-10)
6
1+1+1+1+1+1
1+1+1+1+2
1+1+1+3
1+1+2+2
1+1+4
1+2+3
1+5
2+2+2
2+4
3+3
JAVA实现整数拆分算法,例如输入一个4会输出4 , 3 1, 2 2, 2 1
import java.util.Scanner; //输入的
public class ABS { //外面建的点 java的文件名必须和这个一样
public static int a[] = new int[12000];
static void p(int n, int index) //搜索
{
int i;
if(n = 0) //当n为0的时候输出这种情况
{
System.out.print(a[0]);
for(i = 1; i index; System.out.print(” + ” + a[i++]));
System.out.print(“
”);
return; //返回到函数调用的地方
}
for(i = index 0 (n = a[index – 1]) ? a[index – 1] : n; i 0; i–)
{ //如果 数组下标大于0且 n剩余的值大于等于上一个的值,那么i就等于上一个的值, 否则i就等于n
a[index] = i;
p(n – i, index + 1); //在次调用
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in); //从控制台中读取输入数据
int t;
t = in.nextInt(); //输入一个整数
if(t = 10000)
{
System.out.println(“你输入的数据超过1万, 太大咯!!!”);
return ;
}
p(t,0);
in.close(); // 关闭输入
return ;
}
}
这个只是可以实现10000 以内的数, 如果想大一点 就把数组开大一点局可以了!
让计算机随机产生出10个两位正整数,然后按照从小到大的顺序显示出来 java语言
1、源代码
package BaiDdu;
import java.util.*;
public class test_2_24
{
public static void main(String[] args) {
int num[]=new int[10];
Random random=new Random();
for (int i = 0; i 10; i++) {
int n=random.nextInt(100);
while(n10||n99) //判断是不是两位数
n=random.nextInt(100);//不是就重新生成
num[i]=n;//放进数组里
}
System.out.print(“生成数组:”);
for (int i : num) {
System.out.print(i+” “);
}
Arrays.sort(num);//数组排序
System.out.print(“排序后:”);
for (int i : num) {
System.out.print(i+” “);
}
}
}
2、运行效果
关于java整数划分并求出划分的个数的问题,有代码,能输出整数的划分,但输出的划分个数不对。
import java.util.Scanner;
public class numberDiv {
// private static final huafen numberrDiv = null;
// static int d[]=new int[32];
public static void main(String[] args) {
System.out.println(“请输入的整数:”);
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
int num = numberDiv.Division(number, number, “”);
System.out.println(“num=” + num);
}
public static int Division(int m, int n, String str) {
if ((m = 0) || (n = 0))
return 0;
if ((m == 1) || (n == 1)) {
System.out.print(str);
for (int i = 1; i m; i++) {
System.out.print(“1+”);
}
System.out.println(“1”);
return 1;
}
if (n == m) {
System.out.println(str + m);
return 1 + numberDiv.Division(m, n – 1, str);
}
if (m n) {
int n1 = numberDiv.Division(m – n, n, str + n + “+”);
int n2 = numberDiv.Division(m, n – 1, str);
return n1 + n2;
}
return numberDiv.Division(m, m, str);
}
}
Division方法返回分解的个数,所以numberDiv类不需要再定义成员变量static int num=0;。
Division方法中if ((m == 1) || (n == 1))成立时,本次是一个分解,并且不需要再递归分解,所以返回1。
Division方法中if (n == m)成立时,本次是一个分解,且需要递归分解,所以返回1+递归分解个数。
Division方法中if (m n)成立时,返回两个递归分解的个数之和。
Division方法中最后代码即为m n,直接返回递归分解的个数。
java实现 整数拆分 希望有个算法
我给你写一个,要给分的呦。代码如下:
import java.util.ArrayList;
import java.util.List;
public class Testxxx {
public void chaifen(int n){
List list = new ArrayList();
chaifendigui(n,list);
}
public void chaifendigui(int n, List list) {
// TODO Auto-generated method stub
for (int i = 1; i = n; i++) {
System.out.print(i+” “);
if(ni){
List list2 = new ArrayList();
list2.addAll(list);
list2.add(i);
chaifendigui(n-i,list2);
}else{
System.out.println();
for (int j = 0; j list.size()-1; j++) {
System.out.print(list.get(j)+” “);
}
}
}
}
public static void main(String[] args) {
Testxxx xx = new Testxxx();
xx.chaifen(10);
}
}
整数划分算法实现java语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于整数划分算法实现java语言运用、整数划分算法实现java语言的信息别忘了在本站进行查找喔。
对于【 整数划分算法实现java语言(整数划分算法实现java语言运用) 】文章有相关疑问,还可以参考嗨壳技术分享网,其他技术类文章吧!
原创文章,作者:java,如若转载,请注明出处:https://www.heikehao.com/206.html