Data update
This commit is contained in:
parent
35bcdeebf8
commit
74c69a0df6
2427 changed files with 31826 additions and 3468 deletions
53
Task/Own-digits-power-sum/Java/own-digits-power-sum.java
Normal file
53
Task/Own-digits-power-sum/Java/own-digits-power-sum.java
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
public final class OwnDigitsPowerSum {
|
||||
|
||||
public static void main(String[] args) {
|
||||
List<Integer> powers = IntStream.rangeClosed(0, 9).boxed().map( i -> i * i ).collect(Collectors.toList());
|
||||
|
||||
System.out.println("Own digits power sums for N = 3 to 9 inclusive:");
|
||||
|
||||
for ( int n = 3; n <= 9; n++ ) {
|
||||
for ( int d = 2; d <= 9; d++ ) {
|
||||
powers.set(d, powers.get(d) * d);
|
||||
}
|
||||
|
||||
long number = (long) Math.pow(10, n - 1);
|
||||
long maximum = number * 10;
|
||||
int lastDigit = 0;
|
||||
int sum = 0;
|
||||
|
||||
while ( number < maximum ) {
|
||||
if ( lastDigit == 0 ) {
|
||||
sum = String.valueOf(number)
|
||||
.chars().map(Character::getNumericValue).map( i -> powers.get(i) ).sum();
|
||||
} else if ( lastDigit == 1 ) {
|
||||
sum += 1;
|
||||
} else {
|
||||
sum += powers.get(lastDigit) - powers.get(lastDigit - 1);
|
||||
}
|
||||
|
||||
if ( sum == number ) {
|
||||
System.out.println(number);
|
||||
if ( lastDigit == 0 ) {
|
||||
System.out.println(number + 1);
|
||||
}
|
||||
number += 10 - lastDigit;
|
||||
lastDigit = 0;
|
||||
} else if ( sum > number ) {
|
||||
number += 10 - lastDigit;
|
||||
lastDigit = 0;
|
||||
} else if ( lastDigit < 9 ) {
|
||||
number += 1;
|
||||
lastDigit += 1;
|
||||
} else {
|
||||
number += 1;
|
||||
lastDigit = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue