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. Стоимость согласования перепланировки в Москве может варьироваться в зависимости от множества факторов: сложности проекта, площади помещения, необходимых согласований с различными инстанциями. Компания “КитСтрой” предлагает услуги по доступным ценам, обеспечивая прозрачное ценообразование и индивидуальный подход к каждому клиенту.

    Для того чтобы узнать точную стоимость согласования перепланировки в Москве, обратитесь к нашим специалистам. Мы предоставим вам детальную смету и гарантируем качественное выполнение всех работ.

  2. Откройте дверь в своё будущее с качественным дипломом! Наш сервис предлагает возможность купить диплом различных специальностей, обеспечивая полную официальность и признание документов. Мы предлагаем дипломы от аккредитованных учебных заведений, которые станут вашим надёжным инструментом для достижения профессиональных высот. Выбирая нас, вы выбираете надёжность, качество и широкий спектр образовательных возможностей. Купить дипломы у нас – значит сделать важный шаг к успешной карьере и личному росту.

  3. Good post. I learn something new and challenging on blogs I stumbleupon every day. It will always be helpful to read through articles from other authors and use a little something from other sites.

  4. We’re a bunch of volunteers and opening a brand new scheme in our community. Your website provided us with useful information to work on. You’ve performed a formidable job and our whole group shall be thankful to you.

  5. An outstanding share! I have just forwarded this onto a co-worker who had been conducting a little research on this. And he in fact ordered me breakfast simply because I discovered it for him… lol. So let me reword this…. Thank YOU for the meal!! But yeah, thanks for spending the time to discuss this issue here on your internet site.

  6. Ищете займ до 30 000 рублей даже с плохой кредитной историей? mikro-zaim-online.ru поможет вам! У нас есть список МФО, которые готовы предоставить займы даже при наличии просрочек по другим кредитам. Минимальные требования к заемщику делают получение займа быстрым и простым. Кроме того, на нашем сайте вы найдете подробный FAQ, который ответит на все ваши вопросы и поможет получить займ на карту онлайн. Посетите mikro-zaim-online.ru и решите свои финансовые проблемы без лишних трудностей!

Leave a Reply

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