Given an array of integers, calculate the ratios of its elements that are positive, negative, and zero.

2 0
Read Time:2 Minute, 15 Second

Given an array of integers, calculate the ratios of its elements that are positivenegative, and zero. Print the decimal value of each fraction on a new line with  places after the decimal.

Note: This challenge introduces precision problems. The test cases are scaled to six decimal places, though answers with absolute error of up to  are acceptable.

Example

There are  elements, two positive, two negative and one zero. Their ratios are ,  and . Results are printed as:

0.400000
0.400000
0.200000

Function Description

Complete the plusMinus function in the editor below.

plusMinus has the following parameter(s):

  • int arr[n]: an array of integers

Print
Print the ratios of positive, negative and zero values in the array. Each value should be printed on a separate line with  digits after the decimal. The function should not return a value.

Input Format

The first line contains an integer, , the size of the array.
The second line contains  space-separated integers that describe .

Constraints

Output Format

Print the following  lines, each to  decimals:

  1. proportion of positive values
  2. proportion of negative values
  3. proportion of zeros

Sample Input

STDIN           Function
-----           --------
6               arr[] size n = 6
-4 3 -9 0 4 1   arr = [-4, 3, -9, 0, 4, 1]

Sample Output

0.500000
0.333333
0.166667

-----------------------------------------xxxxxxxx-----------------------------

Java Code

2021
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;

class Result {

    /*
     * Complete the 'plusMinus' function below.
     *
     * The function accepts INTEGER_ARRAY arr as parameter.
     */

    public static void plusMinus(List<Integer> arr) {
   // porpostion  of positive numbers 
        // porpostion of negative  numbers
        // zeros
        int positive_numbers=0;
        int negative_numbers=0;
        int zero_numbers=0;
        int total_numbers=arr.size();
        
     for(Integer var: arr) {
             if(var ==0) {
                 zero_numbers+=1;
             }
             else if(var <0) {
                 negative_numbers+=1;
             }else {
                 positive_numbers+=1;
             }
         }
     double positive=(double)positive_numbers/total_numbers; 
     double negative=(double)negative_numbers/total_numbers; 
     double zeros=(double)zero_numbers/total_numbers; 
     
     System.out.println(String.format("%.6f",positive));
     System.out.println(String.format("%.6f",negative));
     System.out.println(String.format("%.6f",zeros));
    

    }

}

public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(bufferedReader.readLine().trim());

        List<Integer> arr = Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" "))
            .map(Integer::parseInt)
            .collect(toList());

        Result.plusMinus(arr);

        bufferedReader.close();
    }
}
Happy
Happy
30 %
Sad
Sad
20 %
Excited
Excited
10 %
Sleepy
Sleepy
10 %
Angry
Angry
30 %
Surprise
Surprise
0 %

About Author

Average Rating

5 Star
39%
4 Star
21%
3 Star
15%
2 Star
21%
1 Star
3%

977 thoughts on “Given an array of integers, calculate the ratios of its elements that are positive, negative, and zero.

  1. Oh my goodness! Impressive article dude! Many thanks, However I am experiencing troubles with your RSS. I don’t understand the reason why I cannot subscribe to it. Is there anyone else getting the same RSS issues? Anyone who knows the solution will you kindly respond? Thanx!!

  2. I found your weblog web site on google and check a number of of your early posts. Proceed to maintain up the very good operate. I just further up your RSS feed to my MSN News Reader. Seeking forward to studying more from you later on!?

  3. Thanks for expressing your ideas. The first thing is that scholars have an option between fed student loan as well as a private education loan where it’s easier to opt for student loan consolidation than in the federal education loan.

  4. Thanks for your write-up. What I want to say is that when evaluating a good online electronics go shopping, look for a web site with full information on critical indicators such as the privacy statement, safety measures details, any payment options, along with terms along with policies. Usually take time to look into the help and also FAQ pieces to get a far better idea of the way the shop works, what they are able to do for you, and ways in which you can take full advantage of the features.

  5. Thanks for your article. It is extremely unfortunate that over the last decade, the travel industry has already been able to to take on terrorism, SARS, tsunamis, flu virus, swine flu, as well as the first ever true global economic depression. Through it all the industry has really proven to be sturdy, resilient as well as dynamic, locating new tips on how to deal with hardship. There are continually fresh complications and possibilities to which the industry must yet again adapt and answer.

  6. Youre so cool! I dont suppose Ive learn anything like this before. So good to find any individual with some unique ideas on this subject. realy thanks for starting this up. this web site is one thing that is wanted on the web, someone with somewhat originality. useful job for bringing something new to the internet!

  7. I absolutely love your website.. Very nice colors & theme. Did you make this website yourself? Please reply back as I’m trying to create my own personal site and want to know where you got this from or just what the theme is named. Thank you!

Leave a Reply

Your email address will not be published. Required fields are marked *