2015-04-06 49 views
1

我想創建一個程序,它需要一個整數基數和整數指數,並將該整數乘以輸入的某個功率。但是這個代碼不起作用。我究竟做錯了什麼?將整數乘以一定的功率使用循環

import java.io.*; 

import java.util.Scanner; 

import java.text.*; 

public class Unit3_Lesson4_17 

{ 

static Scanner in = new Scanner(System.in); 

public static void main() { 

    Scanner scanner = new Scanner(System.in); 

    DecimalFormat mf = new DecimalFormat("'$'###,###,###.00");  
    DecimalFormat df = new DecimalFormat("#.###"); 


    int i, exp, base, answer; 

    String start; 

    System.out.println("Hit Enter to Begin"); 
    start = scanner.nextLine(); 

    System.out.println("Enter the number"); 
    base = in.nextInt(); 

    System.out.println("Enter the exponent"); 
    exp = in.nextInt(); 

    answer = base; 

    for (i=1; i<=exp; i++) 
     { 
      answer = answer * base; 
     } 


    System.out.println("The answer is " + answer); 
    System.out.println("This program is over!"); 
} 
} 

回答

2

您的錯誤本質上實際上是算法。

你被baseexp倍乘以answer,但你也與base的初始值開始answer。這意味着您的輸出是base * baseexp

你需要或者初始化answer1,或從

for (i=1; i<=exp; i++) 

for循環更改到

for (i=1; i<exp; i++) 
+0

非常感謝一個男人!我本來想嘗試一下,但沒有多加考慮。那麼,它現在正在工作!再次感謝:D – Aeosgames

0

的Java已經提供了這個功能。

answer = Math.pow(base,exp); 
+2

是的,但這不是OP的問題。 –

+0

這個問題需要我使用循環,但我知道Math.pow是如何工作的。感謝您的幫助。 – Aeosgames

+0

我討厭看到人們以一種不那麼理想的方式掙扎或寫東西。 – Vincent