年龄计算总是差一
Age computation always off by one
任务是创建函数。
该函数有两个参数:
- 现在父亲的年龄(岁)
- 他儿子现在的年龄(岁)
计算多少年前父亲的年龄是儿子的两倍(或多少年后他将是儿子的两倍)。
public static int TwiceAsOld(int dadYears, int sonYears){
int dadYearsTemp = dadYears;
int years = 0;
int yearsAgo = 0;
for (int i = 0; i <= dadYears; i++ ){
if (dadYearsTemp / 2 == sonYears) {
years = dadYearsTemp;
yearsAgo = dadYears - years;
System.out.println(yearsAgo);
return yearsAgo;
}
else if (sonYears * 2 > dadYears) {
years = (sonYears * 2) - dadYears;
System.out.println(years);
return years;
}
dadYearsTemp = dadYearsTemp -1;
}
return 42; // The meaning of life
}
例如,输入 (30, 7) 我希望我的函数为 return 16,因为 16 年前父亲是 14,这意味着他现在是他儿子的两倍大(7).但是我的函数 returns 15.
我想这不是一个大错误,但老实说我无法找出它不起作用的原因,所以我希望得到一些帮助。
让爸爸现在的年龄=f
儿子现在的年龄=s
让x年前,父亲是儿子的两倍。
然后 2(s-x) = (f-x)
=> x = 2*s - f
注意:如果x为负数,那么x年后,父亲的年龄是儿子的两倍(测试输入[25,5])
public static void main(String[] args) {
int x = twiceAsOld(25, 5);
System.out.println(x);
}
public static int twiceAsOld(int dadYears, int sonYears) {
return 2*sonYears - dadYears;
}
下面是示例代码,用于计算多少年前父亲的年龄是儿子的两倍,带有示例数据。
public static void main (String args[]) {
int sonAge = 10;
int fatherAge = 24;
int yearsAgo = 0;
while(sonAge*2 != fatherAge && fatherAge>0 ) {
yearsAgo++;
fatherAge = fatherAge-1;
}
System.out.println(yearsAgo);
}
任务是创建函数。
该函数有两个参数:
- 现在父亲的年龄(岁)
- 他儿子现在的年龄(岁)
计算多少年前父亲的年龄是儿子的两倍(或多少年后他将是儿子的两倍)。
public static int TwiceAsOld(int dadYears, int sonYears){
int dadYearsTemp = dadYears;
int years = 0;
int yearsAgo = 0;
for (int i = 0; i <= dadYears; i++ ){
if (dadYearsTemp / 2 == sonYears) {
years = dadYearsTemp;
yearsAgo = dadYears - years;
System.out.println(yearsAgo);
return yearsAgo;
}
else if (sonYears * 2 > dadYears) {
years = (sonYears * 2) - dadYears;
System.out.println(years);
return years;
}
dadYearsTemp = dadYearsTemp -1;
}
return 42; // The meaning of life
}
例如,输入 (30, 7) 我希望我的函数为 return 16,因为 16 年前父亲是 14,这意味着他现在是他儿子的两倍大(7).但是我的函数 returns 15.
我想这不是一个大错误,但老实说我无法找出它不起作用的原因,所以我希望得到一些帮助。
让爸爸现在的年龄=f
儿子现在的年龄=s
让x年前,父亲是儿子的两倍。
然后 2(s-x) = (f-x) => x = 2*s - f
注意:如果x为负数,那么x年后,父亲的年龄是儿子的两倍(测试输入[25,5])
public static void main(String[] args) {
int x = twiceAsOld(25, 5);
System.out.println(x);
}
public static int twiceAsOld(int dadYears, int sonYears) {
return 2*sonYears - dadYears;
}
下面是示例代码,用于计算多少年前父亲的年龄是儿子的两倍,带有示例数据。
public static void main (String args[]) {
int sonAge = 10;
int fatherAge = 24;
int yearsAgo = 0;
while(sonAge*2 != fatherAge && fatherAge>0 ) {
yearsAgo++;
fatherAge = fatherAge-1;
}
System.out.println(yearsAgo);
}