Problem:-
Solution:-
Objective
In this challenge, we practice using throw and catch statements to work with custom error messages.
Task
Complete the isPositive function below. It has one integer parameter, . If the value of is positive, it must return the string
YES
. Otherwise, it must throw an Error according to the following rules:- If is , throw an Error with
Zero Error
. - If is negative, throw an Error with
Negative Error
.
Input Format
Locked stub code in the editor reads the following input from stdin and passes each value of to the function as an argument:
The first line is an integer, , denoting the number of times the function will be called with some .
Each line of the subsequent lines contains an integer denoting some .
The first line is an integer, , denoting the number of times the function will be called with some .
Each line of the subsequent lines contains an integer denoting some .
Constraints
Output Format
If the value of is positive, the function must return the string
YES
. Otherwise, it must throw an Error according to the following rules:- If is , throw an Error with
Zero Error
. - If is negative, throw an Error with
Negative Error
.
Sample Input 0
3
1
2
3
Sample Output 0
YES
YES
YES
Explanation 0
Each of the given values is positive, so we return
YES
each time. The value returned during each function call is printed on a new line by locked stub code in the editor.
Sample Input 1
3
2
0
6
Sample Output 1
YES
Zero Error
YES
Explanation 1
Locked stub code in the editor makes the following three calls to the isPositive function:
isPositive(2)
: This returnsYES
because is positive.isPositive(0)
: Because , we throw an Error withZero Error
. This is caught by the locked stub code and the value of its is printed.isPositive(6)
: This returnsYES
because is positive.
Sample Input 2
2
-1
20
Sample Output 2
Negative Error
YES
Explanation 2
Locked stub code in the editor makes the following two calls to the isPositive function:
isPositive(-1)
: Because , we throw an Error withNegative Error
. This is caught by the locked stub code and the value of its is printed.isPositive(20)
: This returnsYES
because is positive.
Solution:-
'use strict';
process.stdin.resume();
process.stdin.setEncoding('utf-8');
let inputString = '';
let currentLine = 0;
process.stdin.on('data', inputStdin => {
inputString += inputStdin;
});
process.stdin.on('end', _ => {
inputString = inputString.trim().split('\n').map(string => {
return string.trim();
});
main();
});
function readLine() {
return inputString[currentLine++];
}
function isPositive(a) {
if (a == 0)
throw Error('Zero Error');
if (a < 0)
throw Error('Negative Error');
return 'YES';
}
function main() {
const n = +(readLine());
for (let i = 0; i < n; i++) {
const a = +(readLine());
try {
console.log(isPositive(a));
} catch (e) {
console.log(e.message);
}
}
}
No comments:
Post a Comment