我試圖找到答案時不能使用數學類。計算答案時,我必須使用for循環。試圖找到負指數的答案,只有正指數和0作品
package Powers;
import TerminalIO.KeyboardReader;
public class powers {
public static void main(String [] args)
{
KeyboardReader reader= new KeyboardReader();
//Variables
int base; //The base number for the calculations
int minE; //The minimum exponent that will be used
int maxE; //The maximum exponent that will be used
int answer; //Weather the user wishes to repeat or not
double result = 1; //The result of the base to the power of the exponent
//Inputs
do { /* Start of repeat */ base = reader.readInt ("Please enter the base. ");
minE = reader.readInt ("Please enter the minimum exponent. ");
maxE = reader.readInt ("Please enter the maximum exponent. ");
//Error Checking
while (minE > maxE) {
System.out.println("There seems to be an error, your minimum exponent is greater then your maximum exponent. Please re-enter your values");
minE = reader.readInt("Enter your minimum exponent. ");
maxE = reader.readInt("Enter your maximum exponent. ");
}
//End of Error Checking
//Calculations
//Output
System.out.println(" Base Exponent Result");
System.out.println();
int expo; //The exponent by which the base will be powered to
for (expo = minE; expo <= maxE; expo++) {
//For exponent being 0
result = 1;
//For exponent being <0
if (expo <0) {
for (int i= minE;i != 0;i = i + 1) {
result = result/base;
}
}
if (expo == 0) {
result = 1 ;
}
//For exponent being 1
if (expo == 1) {
result = base;
}
//For exponent being >1
if (expo > 1) {
for (int i=1;i<=expo;i++) {
result = result*base;
}
}
System.out.println(" " + base + " " + expo + " " + result);
}
System.out.println();
answer = reader.readInt ("Do you wish to repeat? Enter 1 if yes.");
} while (answer == 1); //End of repeat
}
}
散發出來的一個例子答案是
Please enter the base. 2
Please enter the minimum exponent. -2
Please enter the maximum exponent. 2
Base Exponent Result
2 -2 0.25
2 -1 0.25
2 0 1.0
2 1 2.0
2 2 4.0
正如你可以看到只有0和積極的工作,而不是否定。
當'expo'爲負值時執行的for循環根本不使用'expo'。那就是問題所在。 – ajb