Algorithm
Problem Name: 30 days of code -
Objective
Yesterday's challenge taught you to manage exceptional situations by using try and catch blocks. In today's challenge, you will practice throwing and propagating an exception. Check out the Tutorial tab for learning materials and an instructional video.
Task
Write a Calculator class with a single method: int power(int,int). The power method takes two integers, n and p, as parameters and returns the integer result of np . If either n or p is negative, then the method must throw an exception with the message: n and p should be non-negative
.
Note: Do not use an access modifier (e.g.: public) in the declaration for your Calculator class.
Input Format
Input from stdin is handled for you by the locked stub code in your editor. The first line contains an integer, T, the number of test cases. Each of the T subsequent lines describes a test case in 2 space-separated integers that denote n and p, respectively.
Constraints
- No Test Case will result in overflow for correctly written code.
Output Format
Output to stdout is handled for you by the locked stub code in your editor. There are T lines of output, where each line contains the result of
as calculated by your Calculator class' power method.
Sample Input
4
3 5
2 4
-1 -2
-1 3
Sample Output
243
16
n and p should be non-negative
n and p should be non-negative
Code Examples
#1 Code Example with C++ Programming
Code -
C++ Programming
#include <cmath>
#include <iostream>
using namespace std;
class Calculator {
public:
int power(int n, int p) {
if (n < 0 || p < 0)
throw invalid_argument("n and p should be non-negative");
return (int) pow(n, p);
}
};
int main() {
Calculator myCalculator = Calculator();
int T, n, p;
cin >> T;
while (T-- > 0) {
if (scanf("%d %d", &n, &p) == 2) {
try {
int ans = myCalculator.power(n, p);
cout << ans << endl;
}
catch (exception &e) {
cout << e.what() << endl;
}
}
}
}
Copy The Code &
Try With Live Editor
#2 Code Example with C# Programming
Code -
C# Programming
using System;
class Calculator
{
public int power(int n, int p)
{
if (n < 0 || p < 0)
throw new Exception("n and p should be non-negative");
return (int)Math.Pow(n, p);
}
}
class Solution{
static void Main(String[] args){
Calculator myCalculator=new Calculator();
int T=Int32.Parse(Console.ReadLine());
while(T-->0){
string[] num = Console.ReadLine().Split();
int n = int.Parse(num[0]);
int p = int.Parse(num[1]);
try{
int ans=myCalculator.power(n,p);
Console.WriteLine(ans);
}
catch(Exception e){
Console.WriteLine(e.Message);
}
}
}
}
Copy The Code &
Try With Live Editor
#3 Code Example with Java Programming
Code -
Java Programming
import java.util.Scanner;
class Calculator {
public int power(int n, int p) throws Exception {
if (n < 0 || p < 0)
throw new Exception("n and p should be non-negative");
return (int) Math.pow(n, p);
}
}
class Solution {
public static void main(String[] argh) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
while (T-- > 0) {
int n = in.nextInt();
int p = in.nextInt();
Calculator myCalculator = new Calculator();
try {
int ans = myCalculator.power(n, p);
System.out.println(ans);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
}
Copy The Code &
Try With Live Editor
#4 Code Example with Javascript Programming
Code -
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++];
}
class Calculator {
constructor() {
this.power = function (n, p) {
if (n < 0 || p < 0) {
return ('n and p should be non-negative')
} else {
return n ** p
}
}
}
}
function main(){
var myCalculator=new Calculator();
var T=parseInt(readLine());
while(T-->0){
var num = (readLine().split(" "));
try{
var n=parseInt(num[0]);
var p=parseInt(num[1]);
var ans=myCalculator.power(n,p);
console.log(ans);
}
catch(e){
console.log(e);
}
}
}
Copy The Code &
Try With Live Editor
#5 Code Example with Python Programming
Code -
Python Programming
class Calculator:
def power(self, n, p):
if n < 0 or p < 0:
raise Exception("n and p should be non-negative")
return pow(n, p)
myCalculator=Calculator()
T=int(input())
for i in range(T):
n,p = map(int, input().split())
try:
ans=myCalculator.power(n,p)
print(ans)
except Exception as e:
print(e)
Copy The Code &
Try With Live Editor
#6 Code Example with PHP Programming
Code -
PHP Programming
0){
list($n, $p) = explode(" ", trim(fgets(STDIN)));
try{
$ans=$myCalculator->power($n,$p);
echo $ans."\n";
}
catch(Exception $e){
echo $e->getMessage()."\n";
}
}
?>
Copy The Code &
Try With Live Editor