在我的程序中,逻辑就像: -
Input Addition with Output(result)
2 3 5
3 3+4 10
4 3+4+4 15
5 3+4+4+4 20
6 3+4+4+4+4 25
所以,我做了: -
import java.util.Scanner;
public class Addition {
public static void main( String[] args) {
@SuppressWarnings("resource")
Scanner s = new Scanner(System.in);
int result=0;
System.out.print("Enter a number: ");
int inputNumber = s.nextInt();
if(inputNumber==2){
result = inputNumber+3;
}
else{
Addition c=new Addition();
int j = inputNumber-2;
int power=c.pow(4,j);
result = inputNumber+3+power;
}
System.out.print(result);
}
int pow(int c, int d)
{
int n=1;
for(int i=0;i<d;i++)
{
n=c*n;
}
return n;
}
}
在这个程序中,我得到了结果: -
Input Output(result)
2 5
3 10
4 23
5 72
为什么呢?我做错了什么?
答案 0 :(得分:5)
你会混淆&#39;乘法。
int power=c.pow(4,j);
应该只是:
int power= 4 * j;
答案 1 :(得分:1)
您正在正确计算j,对于inputNumber 3,其值将为1,对于inputNumber 4,其值为2,依此类推......但您没有正确使用它。注意我们不是增加4(4,16,64 ..)的幂,我们只是按递增顺序(4,8,12,...)添加4的倍数。所以你应该添加4 * j来计算结果
按如下方式更改您的代码: -
int j = inputNumber-2;
int multiple = 4 * j;
result = inputNumber + 3 + multiple;