java 设计分桃问题

2024-11-15 01:25:39
推荐回答(4个)
回答(1):

public static void main(String[] args) {
Test t=new Test();
int num=t.calculateOriginalPeachAmount(0.5, -1, 3, 10);
System.out.println(num);
}
public int calculateOriginalPeachAmount(
double percent,// 吃掉的占总数的百分比, 值区间 0.0 ~ 1.0, 如 0.5 表示吃掉一半
int stolen, // 每次被偷的个数, 合理的值应>=0,但如果允许还回来则应该允许为负值,看自己的想法
int lastDay, // 发现最后剩余桃子个数的天数,注意最后一天并没有让猴子吃桃
int remain // 发现最后剩余桃子的个数
){
int num=remain;
for (int i = 1; i < lastDay; i++) {
num=(int)((num+stolen)/(1-percent));
if(num<=0){
return -1;//返回-1说明传入的参数有问题。
}
}
return num;
}

还桃子是可以的,但是不是所有的数据都可以。 所以要有计算判断。

回答(2):

public class test{
public static void main(String[] args) {
test t = new test();
int num = t.calculateOriginalPeachAmount(0.5, 1, 3, 1);
System.out.println(num);
}

/**
*
* @param percent 吃掉的占总数的百分比, 值区间 0.0 ~ 1.0, 如 0.5 表示吃掉一半
* @param stolen 每次被偷的个数, 合理的值应>=0,但如果允许还回来则应该允许为负值,看自己的想法
* @param lastDay 发现最后剩余桃子个数的天数,注意最后一天并没有让猴子吃桃
* @param remain 发现最后剩余桃子的个数
* @return
*/
public int calculateOriginalPeachAmount(double percent,int stolen,int lastDay,int remain){

double total = remain ;
for(int i=lastDay -1;i>=1;--i){
total = (total+stolen)/percent;
}
System.out.println("总数为:"+total);
return (int)total;
}
}

回答(3):

public class PeachProblem {

/**
* @param args
*/
public int calculateOriginalPeachAmount(double percent,int stolen,int lastDay,int remain){
if(percent<0||percent>1){
return 0;
//确保percent在0-1之间
}
else{
double rest=remain;
for(int i=1;i rest=(rest+stolen)/(1-percent);
if(rest%1!=0){
return 0;
//确保每天剩下的都为整数
}
}
return (int)rest;
}
}
public static void main(String[] args) {
System.out.println(new PeachProblem().calculateOriginalPeachAmount(0.5, 1, 3, 1));

}

}

回答(4):

static int calculateOriginalPeachAmount(double percent, int stolen, int lastDay, int remain){
for(int i=1;i remain = (int)((remain+stolen)/percent);
return remain;
}
//没加任何判断
public static void main(String[] args) {
int a = calculateOriginalPeachAmount(0.5,1,3,1);
System.out.println(a);
}