Write a static method named negativeSum that accepts a string of text as a param
ID: 657658 • Letter: W
Question
Write a static method named negativeSum that accepts a string of text as a parameter. Assume that the text is a series of integers, and determine whether or not the cumulative sum starting from the first number is ever negative. The method should produce a message indicating whether or not a negative sum is possible and it should return true if a negative sum can be reached and false if it can't be reached. For example, if the string contains the following text,
"38 4 19 -27 -15 -3 4 19 38"
your method will consider the sum of just one number (38), the sum of the first two numbers (38 + 4), the sum of the first three numbers (38 + 4 + 19), and so on up to the sum of all of the numbers. None of these sums is negative, so the method would produce the following message:
no negative sum
and would return false. If the text is the following,
"14 7 -10 9 -18 -10 17 42 98"
the method finds that a negative sum is reached after adding 6 numbers together
(14 + 7 + -10 + 9 + -18 + -10) and that the sum is -8. It should report the following:
-8 after 6 steps
and should return true, indicating that a negative sum can be reached. The method should return the first negative sum it encounters.
Explanation / Answer
import java.io.*; import java.util.*; public class C06E03_NegativeSum { public static void main(String[] args) throws FileNotFoundException { Scanner input = new Scanner(new File( "/home/hypestar/workspace/KEA 1.Sem/assets/chapter6/C06E03_NegativeSum")); negativeSum(input); } public static void negativeSum(Scanner input){ int sum = 0; int totalNum = 0; while(input.hasNextInt()){ sum+= input.nextInt(); totalNum++; if (sum < 0){ System.out.print("sum of "+ sum + " after " + totalNum + " steps"); break; } } if (sum > 0){ System.out.print("no negative sum"); } } }Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.