Java添加了一个数字程序错误的结果

时间:2015-09-18 09:01:35

标签: java

在我的程序中,逻辑就像: -

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

为什么呢?我做错了什么?

2 个答案:

答案 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;