Skip to content
Programming101
Programming101

Learn everything about programming

  • Home
  • CS Subjects
    • IoT – Internet of Things
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programming101
Programming101

Learn everything about programming

HackerRank Plus Minus problem solution

YASH PAL, 31 July 20243 May 2025

In this HackerRank Plus Minus problem solution, Given an array of integers, calculate the ratios of its elements that are positive, negative, and zero. Print the decimal value of each fraction on a new line with 6 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 10^-4 are acceptable.

Example

arr = [1,1,0,-1,-1]

There are n = 5 elements, two positive, two negative and one zero. Their ratios are 2/5=0.400000, 2/5=0.400000 and 1/5=0.200000. 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 6 digits after the decimal. The function should not return a value.

Input Format

The first line contains an integer, n, the size of the array.

The second line contains n space-separated integers that describe .

Constraints

  • 0 < n <= 100
  • -100 <= arr[i] <= 100

 

Output Format

Print the following 3 lines, each to 6 decimals:

  1. proportion of positive values
  2. proportion of negative values
  3. proportion of zeros
HackerRank plus minus solution
hackerrank plus minus solution

HackerRank Plus Minus problem solution in Python.

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the plusMinus function below.
def plusMinus(arr):
    x,z,y=0,0,0
    for i in range(0,len(arr)):
        if arr[i]>0:
            x = x + 1
        elif arr[i]<0:
            y = y + 1
        else:
            z = z + 1
    print(x/len(arr))
    print(y/len(arr))
    print(z/len(arr))

if __name__ == '__main__':
    n = int(input())

    arr = list(map(int, input().rstrip().split()))

    plusMinus(arr)

Explanation

Problem solution in Java Programming.

import java.text.DecimalFormat;
import java.util.Scanner;


public class Solution {
	public static void main(String args[])
	{
		Scanner scan = new Scanner(System.in);
		int N=Integer.parseInt(scan.nextLine());
		int arr[]= new int[N];
		for(int i=0;i<N;i++)
		{
			arr[i]=scan.nextInt();
		}
		scan.close();
		double pos=0;
		double neg=0;
		double zero=0;
		for(int i=0;i<N;i++)
		{
			if(arr[i]>0)
			{
				pos=pos+1;
			}
			else if(arr[i]<0)
			{
				neg=neg+1;
			}
			else
			{
				zero=zero+1;
			}
		}
		DecimalFormat df= new DecimalFormat("#.000");
		System.out.println(df.format(pos/N));
		System.out.println(df.format(neg/N));
		System.out.println(df.format(zero/N));
	}

}

 

Problem solution in C++ programming.

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    int N, n, total;
    float pos = 0., neg = 0., zer = 0.;
    
    cin >> N;
    
    total = N;
    
    while (N--) {
        cin >> n;
        if (n > 0) pos++;
        else if (n < 0) neg++;
        else zer++;
    }
    
    cout << pos / total << endl;
    cout << neg / total << endl;
    cout << zer / total << endl;
    
    return 0;
}

 

Problem solution in C programming.

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main() {
    int N,A[100],iTemp;
    float minus = 0,zeros = 0,plus = 0;
    scanf("%d",&N);
    for(iTemp=0;iTemp<N;iTemp++)
    {
        scanf("%d",&A[iTemp]);
        if(A[iTemp] > 0)
        {
            plus++;    
        }
        else if(A[iTemp] == 0)
        {
            zeros++;    
        }
        else
        {
            minus++;    
        }
        
    }
    printf("%.3fn%.3fn%.3fn",plus/N,minus/N, zeros/N);
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */    
    return 0;
}

 

Problem solution in JavaScript programming.

function processData(input) {
    //Enter your code here
    input = input.split("n");
    var n = input.shift();
    input = input.shift().split(' ');
    var len = input.length;
    
    var neg = 0.0;
    var zero = 0.0;
    var pos = 0.0;
    
    input.forEach(function (num) {
        num = parseInt(num);
        if (num < 0) { neg++ }
        else if (num > 0) { pos++ }
        else { zero++ }
    });

    console.log((pos / len).toPrecision(3));
    console.log((neg / len).toPrecision(3));
    console.log((zero / len).toPrecision(3));
} 

process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = "";
process.stdin.on("data", function (input) {
    _input += input;
});

process.stdin.on("end", function () {
   processData(_input);
});

Other problems solutions

  • HackerRank Mini-Max sum problem solution
  • HackerRank Birthday cake candles problem solution
  • HackerRank Time conversion problem solution
  • HackerRank Grading students problem solution
  • HackerRank Apple and orange problem solution
algorithm coding problems AlgorithmsHackerRank

Post navigation

Previous post
Next post
  • HackerRank Separate the Numbers solution
  • How AI Is Revolutionizing Personalized Learning in Schools
  • GTA 5 is the Game of the Year for 2024 and 2025
  • Hackerrank Day 5 loops 30 days of code solution
  • Hackerrank Day 6 Lets Review 30 days of code solution
©2025 Programming101 | WordPress Theme by SuperbThemes