java整数拆分代码 java整数的划分问题

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("\n");

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 以内的数, 如果想大一点 就把数组开大一点局可以了!

输入一个整数,将该整形数进行拆分之后求和java代码

public static void main(String[] args) {

//long a = 123456789L;

long a = new Scanner(System.in).nextLong();

int result = 0;

while (a != 0) {

result += a%10;//取个位数

a /= 10;

}

System.out.println(result);

}

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怎样将一个正整数L随机拆分成N个正整数

设定先定义一个有序数组K,数组K里全是质数,然后用L做被除数,用数组K的元素依次做除数(每次整除后得到的商都继续用这个方法),直到L被完全分解,然后将这些除数存入数组N,接着用数组N里的数相乘(每个元素有且只有使用一次)得到一些乘积,将这些乘积都存入数组M。得到的数组M就是结果


网站题目:java整数拆分代码 java整数的划分问题
当前链接:http://azwzsj.com/article/dojpeog.html