Fixed some variable names

This commit is contained in:
2020-08-28 14:24:34 -04:00
parent ea67dd3364
commit d0ac4874b7

View File

@@ -55,7 +55,9 @@ public class Problem17 extends Problem{
//Start with 1 and increment //Start with 1 and increment
for(int num = START_NUM;num <= STOP_NUM;++num){ for(int num = START_NUM;num <= STOP_NUM;++num){
//Pass the number to a function that will create a string for the number //Pass the number to a function that will create a string for the number
String currentNumString = getStringFromNum(num); String currentNumString = makeWordFromNum(num);
//int count = getNumberChars(currentNumString);
//System.out.println(String.format("%4d.Word: %-35s Letters: %d", num, currentNumString, count));
//Pass the string to the function that will count the number of letters in it, ignoring whitespace and punctuation and add that number to the running tally //Pass the string to the function that will count the number of letters in it, ignoring whitespace and punctuation and add that number to the running tally
letterCount += getNumberChars(currentNumString); letterCount += getNumberChars(currentNumString);
} }
@@ -73,42 +75,43 @@ public class Problem17 extends Problem{
letterCount = 0; letterCount = 0;
} }
//This function makes a word out of the number passed into it //This function makes a word out of the number passed into it
private String getStringFromNum(int number){ private String makeWordFromNum(int number){
int num = number;
StringBuilder numberString = new StringBuilder(); StringBuilder numberString = new StringBuilder();
//Starting with the largest digit create a string based on the number passed in //Starting with the largest digit create a string based on the number passed in
//Check for negative //Check for negative
if(number < 0){ if(num < 0){
numberString = numberString.append("negative "); numberString = numberString.append("negative ");
} }
//Check if the number is zero //Check if the number is zero
if(number == 0){ if(num == 0){
numberString = numberString.append("zero"); numberString = numberString.append("zero");
} }
//Start with the thousands place //Start with the thousands place
if((number / 1000D) >= 1D){ if((num / 1000D) >= 1D){
numberString = numberString.append(getStringFromNum((int)Math.floor(number / 1000D))); numberString = numberString.append(makeWordFromNum((int)Math.floor(num / 1000D)));
numberString = numberString.append(" thousand"); numberString = numberString.append(" thousand");
number -= ((int)Math.floor(number / 1000D)) * 1000; num -= ((int)Math.floor(num / 1000D) * 1000);
} }
//Check the hundreds place //Check the hundreds place
if((number / 100D) >= 1D){ if((num / 100D) >= 1D){
numberString = numberString.append(getStringFromNum((int)Math.floor(number / 100D))); numberString = numberString.append(makeWordFromNum((int)Math.floor(num / 100D)));
numberString = numberString.append(" hundred"); numberString = numberString.append(" hundred");
number -= ((int)Math.floor(number / 100D)) * 100; num -= ((int)Math.floor(num / 100D) * 100);
} }
//Insert an and if there is need //Insert an and if there is need
if((!numberString.toString().isBlank() && (number > 0))){ if((!numberString.toString().isBlank() && (num > 0))){
numberString = numberString.append(" and "); numberString = numberString.append(" and ");
} }
//Check for tens place //Check for tens place
if((number / 10D) >= 2D){ if((num / 10D) >= 2D){
//For the tens you need to do something special //For the tens you need to do something special
int tensPlace = (int)Math.floor(number / 10D); int tensPlace = (int)Math.floor(num / 10D);
switch(tensPlace){ switch(tensPlace){
case 9: numberString.append("ninety"); break; case 9: numberString.append("ninety"); break;
case 8: numberString.append("eighty"); break; case 8: numberString.append("eighty"); break;
@@ -119,15 +122,15 @@ public class Problem17 extends Problem{
case 3: numberString.append("thirty"); break; case 3: numberString.append("thirty"); break;
case 2: numberString.append("twenty"); break; case 2: numberString.append("twenty"); break;
} }
number -= (tensPlace * 10); num -= (tensPlace * 10);
//If there is something left in the number you will need a dash to separate the tens and ones place //If there is something left in the number you will need a dash to separate the tens and ones place
if(number > 0){ if(num > 0){
numberString = numberString.append("-"); numberString = numberString.append("-");
} }
} }
//Check for teens //Check for teens
else if((number / 10D) >= 1D){ else if((num / 10D) >= 1D){
int onesPlace = (number % 10); int onesPlace = (num % 10);
switch(onesPlace){ switch(onesPlace){
case 9: numberString.append("nineteen"); break; case 9: numberString.append("nineteen"); break;
case 8: numberString.append("eighteen"); break; case 8: numberString.append("eighteen"); break;
@@ -141,12 +144,12 @@ public class Problem17 extends Problem{
case 0: numberString.append("ten"); break; case 0: numberString.append("ten"); break;
} }
//If this was hit the number was completed //If this was hit the number was completed
number = 0; num = 0;
} }
//Check for the ones place //Check for the ones place
if(number >= 1){ if(num >= 1){
switch(number){ switch(num){
case 9: numberString.append("nine"); break; case 9: numberString.append("nine"); break;
case 8: numberString.append("eight"); break; case 8: numberString.append("eight"); break;
case 7: numberString.append("seven"); break; case 7: numberString.append("seven"); break;
@@ -158,7 +161,12 @@ public class Problem17 extends Problem{
case 1: numberString.append("one"); break; case 1: numberString.append("one"); break;
} }
//If this was hit the number was completed //If this was hit the number was completed
number = 0; num = 0;
}
//If the number is not 0 there was a problem
if(num != 0){
throw new Unsolved("The number " + number + "was not completely reduced!\nRemainder is " + num);
} }
//Return the string //Return the string