任务是创建一个函数。
该函数带有两个参数:
算出父亲多少年前是儿子的两倍(或多少年后他才是儿子的两倍)。
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)的情况下,我希望函数返回16,因为16年前父亲是14岁,这意味着他的年龄是现在儿子的两倍(7)。但是我的函数返回15。
我想这不是一个大错误,但是老实说我无法找出为什么它不起作用,所以我会提供一些帮助。
答案 0 :(得分:1)
让父亲的当前年龄= 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;
}
答案 1 :(得分:-1)
下面是示例代码,该示例代码使用示例数据计算父亲多大以前是儿子的两倍。
getGames(){
let query = HOMELF1_NEXT_GAMES;
var data = {
"query": query,
"variables": null
}
fetch(URL_FEB_API, {
method: "POST",
headers: {
"Accept" : "application/json",
"content-type" : "application/json"
},
body: JSON.stringify(data)
})
.then(response => {
return response.json()
})
.then(data => {
console.log("End query");
return data;
})
.catch(err => {
console.log("Error: " + err)
})
}
async getData(){
console.log("Before getGames");
let games = await this.getGames();
console.log("After getGames");
console.log("games: " + games.length)
}
componentDidMount(){
this.getData();
};