In this HackerRank Grading Students problem solution, HackerLand University has the following grading policy:
Every student receives a grade in the inclusive range from 0 to 100.
Any grade less than 40 is a failing grade.
Sam is a professor at the university and likes to round each student’s grade according to these rules:
If the difference between the grade and the next multiple of 5 is less than 3, round grade up to the next multiple of 5.
If the value of grade is less than 38, no rounding occurs as the result will still be a failing grade.
Problem solution in Python programming.
#!/bin/python3 import math import os import random import re import sys # # Complete the 'gradingStudents' function below. # # The function is expected to return an INTEGER_ARRAY. # The function accepts INTEGER_ARRAY grades as parameter. # def gradingStudents(grades): for i in range(0,len(grades)): if grades[i] < 38: continue else: temp = grades[i] te = temp % 5 if te == 3: temp = temp + 2 grades[i] = temp elif te == 4: temp = temp + 1 grades[i] = temp else: continue return grades if __name__ == '__main__': fptr = open(os.environ['OUTPUT_PATH'], 'w') grades_count = int(input().strip()) grades = [] for _ in range(grades_count): grades_item = int(input().strip()) grades.append(grades_item) result = gradingStudents(grades) fptr.write('n'.join(map(str, result))) fptr.write('n') fptr.close()
Problem solution in Java Programming.
import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); for(int a0 = 0; a0 < n; a0++){ int grade = in.nextInt(); if (grade >= 38) { if (grade%5 >= 3) grade = grade/5*5 + 5; } System.out.println(grade); } } }
Problem solution in C++ programming.
#include <map> #include <set> #include <list> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #include <string> #include <bitset> #include <cstdio> #include <limits> #include <vector> #include <climits> #include <cstring> #include <cstdlib> #include <fstream> #include <numeric> #include <sstream> #include <iostream> #include <algorithm> #include <unordered_map> using namespace std; int main(){ int n; cin >> n; for(int a0 = 0; a0 < n; a0++){ int grade; cin >> grade; if (grade < 38) { cout << grade << "n"; continue; } int rem = grade % 5; if (5 - rem < 3) grade += 5 - rem; cout << grade << "n"; } return 0; }
Problem solution in C programming.
#include <math.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #include <limits.h> #include <stdbool.h> int main(){ int n; scanf("%d",&n); for(int a0 = 0; a0 < n; a0++){ int grade; scanf("%d",&grade); if (grade < 38) { fprintf(stdout, "%dn", grade); // Unchanged } else if (5 - (grade % 5) < 3) { fprintf(stdout, "%dn", 5*(grade/5 + 1)); } else { fprintf(stdout, "%dn", grade); } } return 0; }
Problem solution in JavaScript programming.
process.stdin.resume(); process.stdin.setEncoding('ascii'); var input_stdin = ""; var input_stdin_array = ""; var input_currentline = 0; process.stdin.on('data', function (data) { input_stdin += data; }); process.stdin.on('end', function () { input_stdin_array = input_stdin.split("n"); main(); }); function readLine() { return input_stdin_array[input_currentline++]; } /////////////// ignore above this line //////////////////// function main() { var n = parseInt(readLine()); for(var a0 = 0; a0 < n; a0++){ var grade = parseInt(readLine()); var incrementedGrade = grade; if(grade < 38){ console.log(grade); continue; } // increment , if needed, until grade is a multiple of 5 while(incrementedGrade % 5 != 0){ incrementedGrade++ } if(incrementedGrade - grade < 3 ) console.log(incrementedGrade); else console.log(grade); } }
results = []
for grade in grades:
if grade > 37:
reminder = grade % 5
if reminder >= 3:
grade = grade + (5 – reminder)
results.append(grade)
return results
for grade in grades:
number = grade%5
if grade >= 38 and number >= 3:
grade = (grade+5-number)
else:
continue
return grade