仅使用1来添加两个整数

时间:2014-04-19 00:57:40

标签: java

http://puu.sh/8ekfm.png Zonko的政府(Zumbania王国)决定禁止在其他数字上直接添加大于1的数字。 Zonko决定创建他自己的加法(正整数)以规避禁令。你能帮忙完成他的代码吗?

要获得a和b的总和,Zonko首先将变量sum设置为等于a。然后他重复加1到sum,直到达到+ b。在循环的每次迭代中添加1,直到它被添加了正确的次数。循环中的正确条件是什么,以便在正确的时间停止?

public int add(int a, int b){
int sum = a;
for(int i=1; LOOP-CONDITION; i=i+1){
  sum = sum + 1;    //this will add 1 to sum every iteration
}
return sum;
}

有人可以解释一下并告诉我他们是如何得到答案的吗?

2 个答案:

答案 0 :(得分:1)

用于执行操作一定次数的循环的Java惯用语是:

for(int i=1; i <= [numTimes]; i=i+1){

for(int i=0; i < [numTimes]; i=i+1){

前者具有正确的起始条件,因此您的循环条件为:i <= b

答案 1 :(得分:1)

诀窍在于:

  

Zonko政府(Zumbania王国)决定直接禁止   将大于1的数字添加到其他数字。

这意味着当a大于1时,b无法直接添加到b

假设您要添加a = 5b = 3。您可以通过将1添加到5三次来获得答案。

a = 5;  
loop(b times){
  a = a + 1;
}  

这是循环的方式:

a = 5;
loop starts
  a = 5 + 1;
  a = 6 + 1; // we made it 6 in previous step
  a = 7 + 1; 
loop ends