Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a static method named negativeSum() that accepts a string of text as a par

ID: 3732458 • Letter: W

Question

Write a static method named negativeSum() that accepts a string of text as a parameter from the standard console input stream.  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

Explanation / Answer

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Test {
public static void main(String arggs[]) {
Test test = new Test();
String strFileName = "number.txt";
boolean flag = test.negativeSum(strFileName);
}

public boolean negativeSum(String strFileName) {
String[] strLines = new String[10];
int lineNumber = 0;
Scanner scanner;
boolean flag = false;
try {
scanner = new Scanner(new File(strFileName));
while (scanner.hasNextLine()) {
strLines[lineNumber] = scanner.nextLine();
++lineNumber;
}
String temp = strLines[0];
StringTokenizer st = new StringTokenizer(temp);
int sum = 0;
int[] res = new int[20];
int count = 0;
while (st.hasMoreTokens()) {
sum = sum + Integer.parseInt(st.nextToken());
res[count] = sum;
count++;
}
for (int i = 0; i <= count; i++) {
if (res[i] < 0) {
flag = true;
System.out.println("negative sum can be reached:" + res[i]
+ " after " + (i + 1) + " steps ");
}
}
if (flag == false) {
System.out.println("None of these sums is negative");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return flag;
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote