HackerRank Plus Minus problem solution YASH PAL, 31 July 20248 August 2024 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: proportion of positive values proportion of negative values proportion of zeros hackerrank plus minus 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) 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); }); algorithm coding problems AlgorithmsHackerRank
I didn't store the value of n in total and it gave me wrong answer(c++), don't know why this ones happening but found out something new today!
using System.CodeDom.Compiler;using System.Collections.Generic;using System.Collections;using System.ComponentModel;using System.Diagnostics.CodeAnalysis;using System.Globalization;using System.IO;using System.Linq;using System.Reflection;using System.Runtime.Serialization;using System.Text.RegularExpressions;using System.Text;using System; class Result{ /* * Complete the 'plusMinus' function below. * * The function accepts INTEGER_ARRAY arr as parameter. */ public static void plusMinus(List arr) { var positiveCount =0; var negativeCount =0; var zeroCount = 0; for (var i = 0; i < arr.Count(); i++) { if(arr[i] > 0) { positiveCount++; } else if(arr[i] < 0) { negativeCount ++; } else { zeroCount++; } } Console.WriteLine(((double)positiveCount/arr.Count()).ToString("0.000000")); Console.WriteLine(((double)negativeCount/arr.Count()).ToString("0.000000")); Console.WriteLine(((double)zeroCount/arr.Count()).ToString("0.000000")); }} class Solution{ public static void Main(string[] args) { int n = Convert.ToInt32(Console.ReadLine().Trim()); List arr = Console.ReadLine().TrimEnd().Split(' ').ToList().Select(arrTemp => Convert.ToInt32(arrTemp)).ToList(); Result.plusMinus(arr); }}