Skip to content

Commit ff76aa3

Browse files
Fix checkstyle violations and add explicit cast
1 parent 31309a6 commit ff76aa3

File tree

2 files changed

+27
-15
lines changed

2 files changed

+27
-15
lines changed

src/main/java/com/thealgorithms/maths/ArmstrongNumber.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.thealgorithms.maths;
22

33
/**
4-
* Armstrong Number (also known as Narcissistic Number)
5-
* A number is called an Armstrong number if the sum of cubes of its digits equals the number itself.
6-
* For example: 153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153
4+
* An Armstrong number is a number that is equal to the sum of its own digits
5+
* each raised to the power of the number of digits.
6+
* For example: 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
77
*
88
* @author duvvuvenkataramana
99
*/
@@ -12,23 +12,23 @@ private ArmstrongNumber() {
1212
}
1313

1414
/**
15-
* Check if a number is an Armstrong number
15+
* Checks if a number is an Armstrong number.
1616
*
1717
* @param number the number to check
18-
* @return true if the number is an Armstrong number, false otherwise
18+
* @return {@code true} if Armstrong number, {@code false} otherwise
1919
*/
2020
public static boolean isArmstrong(int number) {
2121
if (number < 0) {
2222
return false;
2323
}
2424

2525
int original = number;
26+
int numDigits = String.valueOf(number).length();
2627
int sum = 0;
27-
int digits = String.valueOf(number).length();
2828

2929
while (number > 0) {
3030
int digit = number % 10;
31-
sum += (int) Math.pow(digit, digits);
31+
sum += (int) Math.pow(digit, numDigits);
3232
number /= 10;
3333
}
3434

src/test/java/com/thealgorithms/maths/ArmstrongNumberTest.java

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,44 @@
66
import org.junit.jupiter.api.Test;
77

88
class ArmstrongNumberTest {
9+
@Test
10+
void testSingleDigitNumbers() {
11+
for (int i = 0; i <= 9; i++) {
12+
assertTrue(ArmstrongNumber.isArmstrong(i));
13+
}
14+
}
915

1016
@Test
11-
void testArmstrongNumbers() {
12-
// Test known Armstrong numbers
13-
assertTrue(ArmstrongNumber.isArmstrong(0));
14-
assertTrue(ArmstrongNumber.isArmstrong(1));
17+
void testThreeDigitArmstrongNumbers() {
1518
assertTrue(ArmstrongNumber.isArmstrong(153));
1619
assertTrue(ArmstrongNumber.isArmstrong(370));
1720
assertTrue(ArmstrongNumber.isArmstrong(371));
1821
assertTrue(ArmstrongNumber.isArmstrong(407));
22+
}
23+
24+
@Test
25+
void testFourDigitArmstrongNumbers() {
1926
assertTrue(ArmstrongNumber.isArmstrong(1634));
27+
assertTrue(ArmstrongNumber.isArmstrong(8208));
28+
assertTrue(ArmstrongNumber.isArmstrong(9474));
2029
}
2130

2231
@Test
2332
void testNonArmstrongNumbers() {
24-
// Test numbers that are not Armstrong numbers
2533
assertFalse(ArmstrongNumber.isArmstrong(10));
2634
assertFalse(ArmstrongNumber.isArmstrong(100));
27-
assertFalse(ArmstrongNumber.isArmstrong(152));
28-
assertFalse(ArmstrongNumber.isArmstrong(200));
35+
assertFalse(ArmstrongNumber.isArmstrong(123));
36+
assertFalse(ArmstrongNumber.isArmstrong(999));
2937
}
3038

3139
@Test
3240
void testNegativeNumbers() {
33-
// Negative numbers cannot be Armstrong numbers
3441
assertFalse(ArmstrongNumber.isArmstrong(-1));
3542
assertFalse(ArmstrongNumber.isArmstrong(-153));
3643
}
44+
45+
@Test
46+
void testZero() {
47+
assertTrue(ArmstrongNumber.isArmstrong(0));
48+
}
3749
}

0 commit comments

Comments
 (0)