# Pythagorean Theorem in Java

I'm new to Java and am following a series of lectures on Stanford's YouTube. I know that the code works, but I'd like to know if it can be improved upon.

/*
* File: PythagoreanTheorem.java
* Name: Will
* -----------------------------
* This file is the starter file for the PythagoreanTheorem problem.
*/

import acm.program.*;

public class PythagoreanTheorem extends ConsoleProgram {
public PythagoreanTheorem() {}
public void run() {
PythagoreanTheorem myCalculator = new PythagoreanTheorem();
if(myCalculator.formula(a,b) ==
Math.floor(myCalculator.formula(a,b))) {
println("C= "+(int)myCalculator.formula(a,b));}
else {
println("C= "+myCalculator.formula(a,b));}
}
private double formula(double x, double y) {
double c = Math.sqrt(x*x+y*y);
return c;
}
}

• For those wondering: get your ACM here
– Mast
Commented Aug 10, 2018 at 6:07
• "following a series of lectures on Stanford's Youtube" do you have a transcript of the problem statement to include? Did you write the code?
– Mast
Commented Aug 10, 2018 at 6:09
• I wrote the code. The problem asked to code a calculator to calculate the Pythagorean Theorem. The bit about returning an integer if it could was just me being annoyed at .0's. Commented Aug 10, 2018 at 6:10
• Except some weird formatting in your condition an a one line return in formula there is nothing much to say. But we do not have much to review. Commented Aug 10, 2018 at 6:28

I did not check the acm package but my 2 cents:

## No need to instantate a PythagoreanTheorem each time

public void run() {
PythagoreanTheorem myCalculator = new PythagoreanTheorem();


run is not static, so there already is an instance of PythagoreanTheorem availiable in the method, referencable by this.

if(myCalculator.formula(a,b) ==


You can use

if(this.formula(a,b) ==


## Reuse results

You have a few calls to myCalculator.formula(a,b). While a and b do not change. You can store the result in a variable.

double c = myCalculator.formula(a,b)
if(c == Math.floor(c))
....