In this HackerRank Plus Minus problem you have 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.

HackerRank Plus Minus problem solution


Problem solution in Python programming.

#!/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)




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("%.3f\n%.3f\n%.3f\n",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);
});