警告:我是初学者。非常新秀的错误。使用的语言是Processing(Java)。
我使用函数连续添加数字(即1 + 2 + 3 + 4 + 5 + 6等等),最多10个。我使用float" num"表示以递增方式计算的高度,即10。
接下来,我计算阶乘(1 * 2 * 3 * 4 * 5 * 6,依此类推),最多10个。
我的老师在课堂上给出了连续添加数字的例子,如下所示:
float Addition(float num) {
float val1=1;
float val=0;
while (val1 <=num){
val=val+val1;
val1++;
}
return val;
}
这增加了55,因为我们应该增加直到我们达到10.有人可以为我解释这个概念吗?我现在正在努力加上4的增量(即0 + 4 + 8 + 12 + 16 + 20等等),最多10个,但我的数学是WAY关闭;它应该等于180,而是等于45:
float Addition2(float num) {
float val1=1;
float val=1;
while (val1 <=num){
val=val*val1;
val1=val1+val2+4;
}
return val;
}
我不是在寻找任何人为我修理数学,而是要解释这个概念本身以及如何正确计算这个(如果这是有道理的)。
提前致谢。
P.S。
作为奖励,这是我对阶乘的工作,同样也是错误的。如果有人也可以解释这个概念,那将是粉碎:
float Multiplication1(float num) {
float val1=1;
float val=1;
while (val1 <=num){
val=val*val1;
val1=val1+2;
}
return val;
}
答案 0 :(得分:1)
要理解代码,请尝试逐行进行。添加注释可能有助于理解。它也可能有助于使用更长和更具描述性的变量名称。让我们尝试一下有效的功能:
//this function adds up 1+2+...maxNumberToAdd
float addition(float maxNumberToAdd) {
//start at 1
float currentNumberToAdd = 1;
//keep track of your total sum
float totalSoFar = 0;
//loop 1,2,3...maxNumberToAdd
while (currentNumberToAdd <= maxNumberToAdd){
//add the current number to the total
totalSoFar = totalSoFar + currentNumberToAdd;
//go to the next number to add
currentNumberToAdd++;
}
//return the total
return totalSoFar;
}
现在你已经拥有了它,你可以考虑修改它以完成下一个任务。
您说您想从0
而不是1
开始。找到负责从1
开始的代码行。如果将其更改为其他内容会发生什么?
您说您只想添加每4个号码。找到负责转到下一个号码的代码行。如果您使用1
以外的其他内容增加会发生什么?