以下是数据结构import java.util.ArrayList;
import java.util.List;public class Demo { /**
* @param args
*/
public static void main(String[] args) {
Money m1 = new Money();
m1.setStart_value(7410D);
m1.setEnd_value(10000D);
m1.setRecoup_ratio(0.5D);
Money m2 = new Money();
m2.setStart_value(10000D);
m2.setEnd_value(30000D);
m2.setRecoup_ratio(0.55D);
Money m3 = new Money();
m3.setStart_value(30000D);
m3.setEnd_value(70000D);
m3.setRecoup_ratio(0.60D);
Money m4 = new Money();
m4.setStart_value(70000D);
m4.setEnd_value(150000D);
m4.setRecoup_ratio(0.65D);
Money m5 = new Money();
m5.setStart_value(150000D);
m5.setEnd_value(300000D);
m5.setRecoup_ratio(0.70D);
List<Money> list = new ArrayList();
list.add(m1);
list.add(m2);
list.add(m3);
list.add(m4);
list.add(m5);
}}
class Money{
private Double start_value ;
private Double end_value ;
private Double recoup_ratio;
public Double getStart_value() {
return start_value;
}
public void setStart_value(Double start_value) {
this.start_value = start_value;
}
public Double getEnd_value() {
return end_value;
}
public void setEnd_value(Double end_value) {
this.end_value = end_value;
}
public Double getRecoup_ratio() {
return recoup_ratio;
}
public void setRecoup_ratio(Double recoup_ratio) {
this.recoup_ratio = recoup_ratio;
}
}以下代码是写死的,将以上数据结构带入以下代码改为动态的double cisTotalEnabledMoney = 12000D;
double cisTotalRedeemMoney = 6000D;
//ceshi
//cisTotalRedeemMoney = 2600;
Map map = new HashMap();
Double result=0d;
Double a=0.5D;//recoup_ratio
Double b=0.55D;
Double c= 0.60D;
Double d=0.65D;
Double e=0.70D;
Double a_f=7410D;//为startValue
Double b_f=10000D;//为endValue
Double c_f=30000D;
Double d_f=70000D;
Double e_f=150000D;
Double f_d=300000D;
if(cisTotalEnabledMoney>a_f && cisTotalEnabledMoney<=b_f) //a
{ System.out.println(map,cisTotalEnabledMoney,a_f,a,1,cisTotalRedeemMoney);
System.out.println(map,0,0,b,2,0);
System.out.println(map,0,0,c,3,0);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}
else if(cisTotalEnabledMoney>b_f && cisTotalEnabledMoney<=c_f) //b
{
if(cisTotalRedeemMoney<=(b_f-a_f)*a&&cisTotalRedeemMoney>=0){
System.out.println(map,b_f,a_f,a,1,cisTotalRedeemMoney);
System.out.println(map,cisTotalEnabledMoney,b_f,b,2,0);
System.out.println(map,0,0,c,3,0);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,cisTotalEnabledMoney,b_f,b,2,cisTotalRedeemMoney-(b_f-a_f)*a);
System.out.println(map,0,0,c,3,0);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}
}
else if(cisTotalEnabledMoney>c_f && cisTotalEnabledMoney<=d_f) //c
{
if(cisTotalRedeemMoney<=(b_f-a_f)*a&&cisTotalRedeemMoney>=0){
System.out.println(map,b_f,a_f,a,1,cisTotalRedeemMoney);
System.out.println(map,c_f,b_f,b,2,0);
System.out.println(map,cisTotalEnabledMoney,c_f,c,3,0);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,cisTotalRedeemMoney-(b_f-a_f)*a);
System.out.println(map,cisTotalEnabledMoney,c_f,c,3,0);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b)+ ((d_f-c_f)*c))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,cisTotalEnabledMoney,c_f,c,3, cisTotalRedeemMoney-(b_f-a_f)*a - (c_f-b_f)*b);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}
}
else if(cisTotalEnabledMoney>d_f && cisTotalEnabledMoney<=e_f) //d
{
if(cisTotalRedeemMoney<=(b_f-a_f)*a&&cisTotalRedeemMoney>=0){
System.out.println(map,b_f,a_f,a,1,cisTotalRedeemMoney);
System.out.println(map,c_f,b_f,b,2,0);
System.out.println(map,d_f,c_f,c,3,0);
System.out.println(map,cisTotalEnabledMoney,d_f,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,cisTotalRedeemMoney-(b_f-a_f)*a);
System.out.println(map,d_f,c_f,c,3,0);
System.out.println(map,cisTotalEnabledMoney,d_f,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b)+ ((d_f-c_f)*c))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,d_f,c_f,c,3, cisTotalRedeemMoney-(b_f-a_f)*a - (c_f-b_f)*b);
System.out.println(map,cisTotalEnabledMoney,d_f,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b)+ ((d_f-c_f)*c)+((e_f-d_f)*d))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,d_f,c_f,c,3,(d_f-c_f)*c);
System.out.println(map,cisTotalEnabledMoney,d_f,d,4,cisTotalRedeemMoney - ((b_f-a_f)*a)-((c_f-b_f)*b)-((d_f-c_f)*c));
System.out.println(map,0,0,e,5,0);
}
}
else if(cisTotalEnabledMoney>e_f) //e
{
if(cisTotalRedeemMoney<=(b_f-a_f)*a&&cisTotalRedeemMoney>=0){
System.out.println(map,b_f,a_f,a,1,cisTotalRedeemMoney);
System.out.println(map,c_f,b_f,b,2,0);
System.out.println(map,d_f,c_f,c,3,0);
System.out.println(map,e_f,d_f,d,4,0);
System.out.println(map,cisTotalEnabledMoney,e_f,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,cisTotalRedeemMoney-(b_f-a_f)*a);
System.out.println(map,d_f,c_f,c,3,0);
System.out.println(map,e_f,d_f,d,4,0);
System.out.println(map,cisTotalEnabledMoney,e_f,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b)+ ((d_f-c_f)*c))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,d_f,c_f,c,3, cisTotalRedeemMoney-(b_f-a_f)*a - (c_f-b_f)*b);
System.out.println(map,e_f,d_f,d,4,0);
System.out.println(map,cisTotalEnabledMoney,e_f,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b)+ ((d_f-c_f)*c)+((e_f-d_f)*d))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,d_f,c_f,c,3,(d_f-c_f)*c);
System.out.println(map,e_f,d_f,d,4,cisTotalRedeemMoney - ((b_f-a_f)*a)-((c_f-b_f)*b)-((d_f-c_f)*c));
System.out.println(map,cisTotalEnabledMoney,e_f,e,5,0);
}else{
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,d_f,c_f,c,3,(d_f-c_f)*c);
System.out.println(map,e_f,d_f,d,4,(e_f-d_f)*d);
System.out.println(map,cisTotalEnabledMoney,e_f,e,5,cisTotalRedeemMoney - ((b_f-a_f)*a)-((c_f-b_f)*b)-((d_f-c_f)*c)-((e_f-d_f)*d));
}
}
由于本人逻辑思维不是很好,想了2天也没弄出来。希望各位大虾帮忙解决下。谢谢
import java.util.List;public class Demo { /**
* @param args
*/
public static void main(String[] args) {
Money m1 = new Money();
m1.setStart_value(7410D);
m1.setEnd_value(10000D);
m1.setRecoup_ratio(0.5D);
Money m2 = new Money();
m2.setStart_value(10000D);
m2.setEnd_value(30000D);
m2.setRecoup_ratio(0.55D);
Money m3 = new Money();
m3.setStart_value(30000D);
m3.setEnd_value(70000D);
m3.setRecoup_ratio(0.60D);
Money m4 = new Money();
m4.setStart_value(70000D);
m4.setEnd_value(150000D);
m4.setRecoup_ratio(0.65D);
Money m5 = new Money();
m5.setStart_value(150000D);
m5.setEnd_value(300000D);
m5.setRecoup_ratio(0.70D);
List<Money> list = new ArrayList();
list.add(m1);
list.add(m2);
list.add(m3);
list.add(m4);
list.add(m5);
}}
class Money{
private Double start_value ;
private Double end_value ;
private Double recoup_ratio;
public Double getStart_value() {
return start_value;
}
public void setStart_value(Double start_value) {
this.start_value = start_value;
}
public Double getEnd_value() {
return end_value;
}
public void setEnd_value(Double end_value) {
this.end_value = end_value;
}
public Double getRecoup_ratio() {
return recoup_ratio;
}
public void setRecoup_ratio(Double recoup_ratio) {
this.recoup_ratio = recoup_ratio;
}
}以下代码是写死的,将以上数据结构带入以下代码改为动态的double cisTotalEnabledMoney = 12000D;
double cisTotalRedeemMoney = 6000D;
//ceshi
//cisTotalRedeemMoney = 2600;
Map map = new HashMap();
Double result=0d;
Double a=0.5D;//recoup_ratio
Double b=0.55D;
Double c= 0.60D;
Double d=0.65D;
Double e=0.70D;
Double a_f=7410D;//为startValue
Double b_f=10000D;//为endValue
Double c_f=30000D;
Double d_f=70000D;
Double e_f=150000D;
Double f_d=300000D;
if(cisTotalEnabledMoney>a_f && cisTotalEnabledMoney<=b_f) //a
{ System.out.println(map,cisTotalEnabledMoney,a_f,a,1,cisTotalRedeemMoney);
System.out.println(map,0,0,b,2,0);
System.out.println(map,0,0,c,3,0);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}
else if(cisTotalEnabledMoney>b_f && cisTotalEnabledMoney<=c_f) //b
{
if(cisTotalRedeemMoney<=(b_f-a_f)*a&&cisTotalRedeemMoney>=0){
System.out.println(map,b_f,a_f,a,1,cisTotalRedeemMoney);
System.out.println(map,cisTotalEnabledMoney,b_f,b,2,0);
System.out.println(map,0,0,c,3,0);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,cisTotalEnabledMoney,b_f,b,2,cisTotalRedeemMoney-(b_f-a_f)*a);
System.out.println(map,0,0,c,3,0);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}
}
else if(cisTotalEnabledMoney>c_f && cisTotalEnabledMoney<=d_f) //c
{
if(cisTotalRedeemMoney<=(b_f-a_f)*a&&cisTotalRedeemMoney>=0){
System.out.println(map,b_f,a_f,a,1,cisTotalRedeemMoney);
System.out.println(map,c_f,b_f,b,2,0);
System.out.println(map,cisTotalEnabledMoney,c_f,c,3,0);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,cisTotalRedeemMoney-(b_f-a_f)*a);
System.out.println(map,cisTotalEnabledMoney,c_f,c,3,0);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b)+ ((d_f-c_f)*c))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,cisTotalEnabledMoney,c_f,c,3, cisTotalRedeemMoney-(b_f-a_f)*a - (c_f-b_f)*b);
System.out.println(map,0,0,d,4,0);
System.out.println(map,0,0,e,5,0);
}
}
else if(cisTotalEnabledMoney>d_f && cisTotalEnabledMoney<=e_f) //d
{
if(cisTotalRedeemMoney<=(b_f-a_f)*a&&cisTotalRedeemMoney>=0){
System.out.println(map,b_f,a_f,a,1,cisTotalRedeemMoney);
System.out.println(map,c_f,b_f,b,2,0);
System.out.println(map,d_f,c_f,c,3,0);
System.out.println(map,cisTotalEnabledMoney,d_f,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,cisTotalRedeemMoney-(b_f-a_f)*a);
System.out.println(map,d_f,c_f,c,3,0);
System.out.println(map,cisTotalEnabledMoney,d_f,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b)+ ((d_f-c_f)*c))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,d_f,c_f,c,3, cisTotalRedeemMoney-(b_f-a_f)*a - (c_f-b_f)*b);
System.out.println(map,cisTotalEnabledMoney,d_f,d,4,0);
System.out.println(map,0,0,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b)+ ((d_f-c_f)*c)+((e_f-d_f)*d))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,d_f,c_f,c,3,(d_f-c_f)*c);
System.out.println(map,cisTotalEnabledMoney,d_f,d,4,cisTotalRedeemMoney - ((b_f-a_f)*a)-((c_f-b_f)*b)-((d_f-c_f)*c));
System.out.println(map,0,0,e,5,0);
}
}
else if(cisTotalEnabledMoney>e_f) //e
{
if(cisTotalRedeemMoney<=(b_f-a_f)*a&&cisTotalRedeemMoney>=0){
System.out.println(map,b_f,a_f,a,1,cisTotalRedeemMoney);
System.out.println(map,c_f,b_f,b,2,0);
System.out.println(map,d_f,c_f,c,3,0);
System.out.println(map,e_f,d_f,d,4,0);
System.out.println(map,cisTotalEnabledMoney,e_f,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,cisTotalRedeemMoney-(b_f-a_f)*a);
System.out.println(map,d_f,c_f,c,3,0);
System.out.println(map,e_f,d_f,d,4,0);
System.out.println(map,cisTotalEnabledMoney,e_f,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b)+ ((d_f-c_f)*c))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,d_f,c_f,c,3, cisTotalRedeemMoney-(b_f-a_f)*a - (c_f-b_f)*b);
System.out.println(map,e_f,d_f,d,4,0);
System.out.println(map,cisTotalEnabledMoney,e_f,e,5,0);
}else if(cisTotalRedeemMoney <= (((b_f-a_f)*a)+((c_f-b_f)*b)+ ((d_f-c_f)*c)+((e_f-d_f)*d))){
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,d_f,c_f,c,3,(d_f-c_f)*c);
System.out.println(map,e_f,d_f,d,4,cisTotalRedeemMoney - ((b_f-a_f)*a)-((c_f-b_f)*b)-((d_f-c_f)*c));
System.out.println(map,cisTotalEnabledMoney,e_f,e,5,0);
}else{
System.out.println(map,b_f,a_f,a,1,(b_f-a_f)*a);
System.out.println(map,c_f,b_f,b,2,(c_f-b_f)*b);
System.out.println(map,d_f,c_f,c,3,(d_f-c_f)*c);
System.out.println(map,e_f,d_f,d,4,(e_f-d_f)*d);
System.out.println(map,cisTotalEnabledMoney,e_f,e,5,cisTotalRedeemMoney - ((b_f-a_f)*a)-((c_f-b_f)*b)-((d_f-c_f)*c)-((e_f-d_f)*d));
}
}
由于本人逻辑思维不是很好,想了2天也没弄出来。希望各位大虾帮忙解决下。谢谢
解决方案 »
- html向applet传参数
- 考题:编一个程序测试2008年是否属于闰年
- 请问用java解析XML有几种方法,那一种最常用?
- Java 2核心技术哪版比较好?
- KeyListener如何设按键间距。
- Class.newInstance()如何通过传入参数生成实例?
- 高手,不在机上运行,谁可以说出编译过程和结果?
- String regex1 ="[\n\r]+"; regex2 ="[\\n\\r]+"; 正则运行结果一致!为何?
- java Swing JRadioButton如何设置为初始状态颜色
- 请问为什么用get(i)方法不行,求帮忙看下是哪里的问题~谢谢
- 构造方法问题
- JAVA新手出现了一个疑问,求大神指点一下,我好像没有那个什么悬赏分,刚注册没多久,别介意,希望谁教我一下。谢谢!
如果不是这个,那看这段代码像是阶梯电价的计算算法,
还有这个好像不全这个map创建了好像没用到,难道这个就是设计算法的写了个半死不活的算法让你改?
还有System.out.println(map,0,0,e,5,0);这个玩意能通过编译?