重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

java整数划分实现代码 java整数分解方法

关于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怎么样把123456789分割成123,456,789,代码实现~

//把123456789分割成123,456,789,

public class A

{

public static void main(String[] args)

{

String str = "123456789";//如果123456789是数字类型,则可以将其转换为String类型

String str1 = "";

for(int i=0;i9;i++){

str1 += str.charAt(i);

if((i+1)%3 == 0){

str1 += ";";

}

}

System.out.println(str1);

}

}

求一道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代码实现将100分拆成四个整数之和,一共有多少种拆法?

如果没有负整数,一共有 8037 种拆法。

源码:

import java.io.FileWriter;

import java.io.IOException;

import java.util.Arrays;

import java.util.Set;

import java.util.TreeSet;

public class Main {

public final static int Sum = 100;

static SetString Combinations = new TreeSet();

public static void main(String[] args) throws IOException {

for (int i1 = 0; i1 = Sum; i1++) {

for (int i2 = 0; i2 = Sum; i2++) {

for (int i3 = 0; i3 = Sum; i3++) {

for (int i4 = 0; i4 = Sum; i4++) {

String s = GetString(new int[] {i1, i2, i3, i4});

if (CheckNumbers(i1, i2, i3, i4)) {

Combinations.add(s);

}

}

}

}

}

System.out.println(Combinations);

System.out.println(Combinations.size());

FileWriter writer = new FileWriter("results.json");

writer.write(Combinations.toString());

writer.flush();

writer.close();

}

public static String GetString(int[] numbers) {

sort(numbers, 0, 3);

return Arrays.toString(numbers);

}

public static void sort(int[] arr,int begin,int end) {

int a = begin;

int b = end;

if (a = b) return;

int x = arr[a];

while (a b) {

while (a b arr[b] = x) b--;

if (a b) {

arr[a] = arr[b];

a++;

}

while (a b arr[a] = x) a++;

if (a b) {

arr[b] = arr[a];

b--;

}

}

arr[a] = x;

sort(arr,begin,a-1);

sort(arr,a+1,end);

}

public static boolean CheckNumbers(int i1, int i2, int i3, int i4) {

return (i1 + i2 + i3 + i4) == Sum;

}

}


分享文章:java整数划分实现代码 java整数分解方法
分享路径:http://cqcxhl.cn/article/ddjsgej.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP