固定值 基础数据
养老 医疗 失业 生育 工伤
400 180 40 16 10根据上面的固定值基础数据给出一个总数,满足任意一个或多个值相加等于总数就返回各个值,没有参与到相加里面的就为0
例如:
总数 466 ,返回的是 400 + 0 + 40 + 16 + 10
总数 580 ,返回的是 400 + 180 + 0 + 0 + 0
总数 440 ,返回的是 400 + 0 + 40 + 0 + 0依次类推,还望各位大侠指点指点~
养老 医疗 失业 生育 工伤
400 180 40 16 10根据上面的固定值基础数据给出一个总数,满足任意一个或多个值相加等于总数就返回各个值,没有参与到相加里面的就为0
例如:
总数 466 ,返回的是 400 + 0 + 40 + 16 + 10
总数 580 ,返回的是 400 + 180 + 0 + 0 + 0
总数 440 ,返回的是 400 + 0 + 40 + 0 + 0依次类推,还望各位大侠指点指点~
解决方案 »
- java swing jframe如何根据container设置大小
- java 画矩形
- ftpClient.storeUniqueFile 上传文件失败返回false 求高人指点!!
- java处理sql中的图片字段
- 这里的人好像都很热情
- java.awt.Robot发出组合键ctrl+z怎么实现
- java.lang.OutOfMemoryError: Java heap space
- 我想用java实现正则表达式,有每有相关的资料?不调用正则表达式库。
- java 如何适应win xp系统主题?
- 只会javase的理论知识 可以学安卓吗 别人说要会ee才行
- 求一个设计的问题
- java线程run方法中执行顺序的问题,难道是要加锁?
400*a+180*b+40*c+16*d+10*e = Z(总数)
第一步:z-400*a>=0;求出a的值
第二步:(z-400*a)-180*b>=0;求出b的值
...
最后打印a/b/c/d/e中大于0的就是了。
static int[] num = new int[]{400,180,40,16,10};
static final String NO_RESULT = "没有结果";
public static void main(String[] args) {
System.out.println(check(num,466));
System.out.println(check(num,580));
System.out.println(check(num,440));
System.out.println(check(num,210));
}
static String check(int[] num,int value){
int sum = 0;
int[] addNum = new int[]{0,0,0,0,0};
for(int i = 0;i < num.length;i++){
if(num[i] > value)
continue;
sum += num[i];
addNum[i] = num[i];
if(sum == value){
StringBuffer result = new StringBuffer("总数 " + value + " 返回的是");
for(int j = 0;j < addNum.length - 1;j++){
result.append(addNum[j] + " + ");
}
result.append(addNum[addNum.length - 1]);
return result.toString();
}
else if(sum > value){
sum -= num[i];
addNum[i] = 0;
}
}
return NO_RESULT;
}
}
zyc13701469860
OnEstepEnD
k3108001263
嘿嘿
zyc13701469860谢谢你上代码,我来试试~
稍候给分