SHOW:
|
|
- or go back to the newest paste.
| 1 | import java.math.BigInteger; | |
| 2 | import java.util.Scanner; | |
| 3 | ||
| 4 | public class Demo {
| |
| 5 | public static void main(String[] args) {
| |
| 6 | Scanner scanner = new Scanner(System.in); | |
| 7 | String input = scanner.nextLine(); //"P34562Z q2576f H456z" | |
| 8 | String [] passwords = input.split("\\s+"); //["P34562Z", "q2576f", "H456z"]
| |
| 9 | double totalSum = 0; //обща сума от всички пароли | |
| 10 | for (String password : passwords) {
| |
| 11 | //пресмятаме стойността | |
| 12 | double modifiedNumber = getModifiedNumber(password); | |
| 13 | //сумираме | |
| 14 | totalSum += modifiedNumber; | |
| 15 | } | |
| 16 | ||
| 17 | System.out.printf("%.2f", totalSum);
| |
| 18 | ||
| 19 | } | |
| 20 | ||
| 21 | private static double getModifiedNumber (String password) {
| |
| 22 | //{буква}{число}{буква} -> "P34562Z"
| |
| 23 | char firstLetter = password.charAt(0); //"P" | |
| 24 | char secondLetter = password.charAt(password.length() - 1); | |
| 25 | //първи начин: int number = Integer.parseInt(password.replace(firstLetter, ' ').replace(secondLetter, ' ').trim()); | |
| 26 | //втори начин: | |
| 27 | StringBuilder builder = new StringBuilder(password); | |
| 28 | double number = Double.parseDouble(builder.deleteCharAt(0).deleteCharAt(builder.length() - 1).toString()); | |
| 29 | //трети начин: int number = Integer.parseInt(password.substring(1, password.indexOf(secondLetter))); | |
| 30 | ||
| 31 | //проверка за първата буква | |
| 32 | if (Character.isUpperCase(firstLetter)) { //аски кода >= 65 и <= 90
| |
| 33 | //позиция в азбуката | |
| 34 | int positionUpperLetter = (int)firstLetter - 64; | |
| 35 | number = number / positionUpperLetter; | |
| 36 | } else {
| |
| 37 | int positionLowerLetter = (int)firstLetter - 96; | |
| 38 | number = number * positionLowerLetter; | |
| 39 | } | |
| 40 | ||
| 41 | //проверка за втората буква | |
| 42 | if(Character.isUpperCase(secondLetter)) {
| |
| 43 | int positionUpperLetter = (int)secondLetter - 64; | |
| 44 | number = number - positionUpperLetter; | |
| 45 | } else {
| |
| 46 | int positionLowerLetter = (int)secondLetter - 96; | |
| 47 | number = number + positionLowerLetter; | |
| 48 | } | |
| 49 | ||
| 50 | return number; | |
| 51 | } | |
| 52 | } |