用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况

时间:2022-05-16 02:26:54

用JAVA写一个函数。功能例如以下:随意给定一组数,比如{12,60,-8,99,15,35,17,18},找出随意数相加之后的结果为35(随意设定)的情况.

能够递归算法来解:

package test1;

import java.util.Arrays;

public class demo {

	public static void main(String[] args) {
String str = "12,60,-8,99,15,35,17,18,8,10,11,12";
int sum = 35;
diguiSum(str,sum);
} public static void diguiSum(String str,int sum) {
String[] x = str.split(",");
int[] array = arrayTransform(x);
for (int i = 0; i < array.length; i++) {
int[] cache = new int[i + 1];
int ceng = -1;
int cengQuit = i;
int startPiont = 0;
cir(ceng, cengQuit, startPiont, array, cache, sum);
}
} // 递归求结果
public static void cir(int ceng, int cengQuit, int startPiont, int[] array, int[] cache, int sum) {
ceng++;
for (int i = startPiont; i < array.length; i++) {
cache[ceng] = array[i];
if (ceng == cengQuit) {
if (getSum(cache) == sum) {
printcache(cache);
}
if (getSum(cache) > sum) {
break;
}
}
if (ceng < cengQuit) {
startPiont = i + 1;
cir(ceng, cengQuit, startPiont, array, cache,sum);
}
}
} // 获取组合数字之和
public static int getSum(int[] cache) {
int sum = 0;
for (int i = 0; i < cache.length; i++) {
sum = sum + cache[i];
}
return sum;
} // 打印组合的可能
public static void printcache(int[] cache) {
for (int i = 0; i < cache.length; i++) {
System.out.print(cache[i] + ",");
}
System.out.println();
} // 转换数组类型 且为提高效率做准备
public static int[] arrayTransform(String[] strArray) {
int length = 0; int[] array = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
array[i] = Integer.valueOf(strArray[i]);
}
Arrays.sort(array);
for (int i = 0; i < array.length; i++) {
if (array[i] > 35) {
length = i;
break;
}
}
int[] dest = new int[length];
System.arraycopy(array, 0, dest, 0, length);
return dest;
}
}

此算法有做适当參考。

执行结果:

用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况

用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况的更多相关文章

  1. 自动化测试(三)如何用python写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复。

    写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复.邮箱前面的长度是6-12之间,产生的邮箱必须包含大写字母.小写字母.数字和特殊字符 和上一期一样 代码中间有段比较混沌 有 ...

  2. 假如现在有一堆长度大于3小于9的电话号码,用座机呼叫,如果出现这样的号码【123和12345】那么12345将永远不会被拨出,因为拨到123的时候电话已经呼出了&comma;试写一个函数输出所有不能被呼出的电话号码(java实现)

    解题: 假如现在有一堆长度大于3小于9的电话号码,用座机呼叫,如果出现这样的号码[123和12345]那么12345将永远不会被拨出,因为拨到123的时候电话已经呼出了,试写一个函数输出所有不能被呼出 ...

  3. Java-集合(没做出来)第四题 (List)写一个函数reverseList,该函数能够接受一个List,然后把该List 倒序排列。 例如: List list &equals; new ArrayList&lpar;&rpar;&semi; list&period;add&lpar;&OpenCurlyDoubleQuote;Hello”&rpar;&semi; list&period;add&lpar;&OpenCurlyDoubleQuote;World”&rpar;&semi; list&period;add&lpar;&OpenCurlyDoubleQuote;Learn”&rpar;&semi; &sol;&sol;此时list 为Hello World Learn reverseL

    没做出来 第四题 (List)写一个函数reverseList,该函数能够接受一个List,然后把该List 倒序排列. 例如: List list = new ArrayList(); list.a ...

  4. 面试题--&gt&semi;写一个函数,返回一个数组中所有元素被第一个元素除的结果

    package com.rui.test; import java.util.Random; /** * @author poseidon * @version 1.0 * @date:2015年10 ...

  5. 五:用JAVA写一个阿里云VPC Open API调用程序

    用JAVA写一个阿里云VPC Open API调用程序 摘要:用JAVA拼出来Open API的URL 引言 VPC提供了丰富的API接口,让网络工程是可以通过API调用的方式管理网络资源.用程序和软 ...

  6. 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度

    import java.util.Scanner; /** * [程序38] * * 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度. * * @author Jame ...

  7. JS函数 编程练习 使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数。

    编程练习 使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数. 任务 第一步: 编写代码完成一个函数的定义吧. 第二步: 我们来补充函数体中的控制语句,完成函数功能吧. 提示: ...

  8. ytu 1050&colon;写一个函数,使给定的一个二维数组(3&&num;215&semi;3)转置,即行列互换(水题)

    1050: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 154  Solved: 112[ ...

  9. 有两个指针pa,pb分别指向有两个数,a&comma;b,请写一个函数交换两个指针的指向,也就是让pa指向b&comma;让pb指向a

    题目:有两个指针pa,pb分别指向有两个数,a,b,请写一个函数交换两个指针的指向,也就是让pa指向b,让pb指向a,具体实现如下: #include<stdlib.h> #include ...

随机推荐

  1. ASP&period;NET项目部署到Linux服务器出现服务器错误

    在Linux系统中安装了Mono和Apache作为Web服务器,使用Visual Studio开发的ASP.NET Web应用或者API应用,在部署到Linux服务器后出现服务器错误,其中一个原因是由 ...

  2. Python Scopes and Namespaces

    Before introducing classes, I first have to tell you something about Python's scope rules. Class def ...

  3. Initialization of deep networks

    Initialization of deep networks 24 Feb 2015Gustav Larsson As we all know, the solution to a non-conv ...

  4. 微软职位内部推荐-Principal Architect for Windows Security

    微软近期Open的职位: Location: China, BeijingDivision: Operations System Group Engineering Group OverviewOSG ...

  5. Android 推送和统计最优轮循(心跳策略)探究实践

    http://blog.csdn.net/sk719887916/article/details/51398416 skay亲笔 Android开发中经常会用到周期性执行一个动作的需求,大的场景有推送 ...

  6. vue 开发和生产的跨域问题

    开发阶段 在开发环境与后端调试的时候难免会遇到跨域问题,在 vue 项目中常用的是 proxyTable,这个用起来很方便. 打开 config 文件夹下面的 index.js,找到 dev 开发模式 ...

  7. 刘志梅2017710101152&period;《面向对象程序设计(java)》第十二周学习总结

    实验十二  图形程序设计 实验时间 2018-11-14 1.理论知识 (1) 基本AWT库采用将处理用户界面元素的任务委派给每个目标平台的本地GUI工具箱的方式,由本地GUI工具箱负责用户界面元素的 ...

  8. C&num;退出窗体的总结方法

    一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.En ...

  9. sench touch 页面跳转

    下面是我做的一个简单的登录页面登录成功后跳转页面 首页要在app.js 里面添加 1.视图层   登录页面 Ext.define('MyApp.view.Login', { extend: 'Ext. ...

  10. 合并CSV文件&period;bat

    @echo off E:\保存文件夹 cd E:\文件所在的文件夹 dir copy *.csv all_keywords.csv echo @@@@@@@@@@@@@合并成功!@@@@@@@@@@@ ...