Advertisement
desislava_topuzakova

10. Top Number

Oct 8th, 2022
1,132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.56 KB | None | 0 0
  1. package methods;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class TopNumber_10 {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.         int n = Integer.parseInt(scanner.nextLine());
  9.  
  10.         for (int number = 1; number <= n; number++) {
  11.             //проверка дали е top число
  12.             //1. сумата от цифрите да се дели на 8 - ok
  13.             //2. съдържа поне една нечетна цифра - ок
  14.             if (isSumOfDigitsDivisibleBy8(number) && isContainsOddDigit(number)) {
  15.                 System.out.println(number);
  16.             }
  17.         }
  18.  
  19.     }
  20.     //метод, който проверява дали сумата от цифрите се дели на 8
  21.     //true -> ако сумата се дели на 8
  22.     //false -> ако сумата не се дели на 8
  23.     public static boolean isSumOfDigitsDivisibleBy8 (int number) {
  24.         //1. сума от цифрите
  25.         int sumDigits = 0;
  26.         while (number > 0) {
  27.             //взимам последната цифра
  28.             int lastDigit = number % 10;
  29.             //сумирам последната цифра
  30.             sumDigits += lastDigit;
  31.             //премахвам последната цифра
  32.             number = number / 10;
  33.         }
  34.         //2. проверка на сумата за деление с 8
  35.         return sumDigits % 8 == 0;
  36.         /*if (sumDigits % 8 == 0) {
  37.             return true;
  38.         } else {
  39.             return false;
  40.         }*/
  41.     }
  42.  
  43.     //метод, който проверява дали имаме поне една нечетна цифра в числото
  44.     //true -> имам поне една нечетна цифра
  45.     //false -> ако нямам нито 1 нечетна цифра
  46.     public static boolean isContainsOddDigit (int number) {
  47.         //обходя всяка цифра в число -> проверка дали е нечетна
  48.         while (number > 0) {
  49.             //взимам последната цифра
  50.             int lastDigit = number % 10;
  51.             //проверявам дали е нечетна
  52.             if (lastDigit % 2 != 0) {
  53.                 return true;
  54.             } else {
  55.                 //цифрата да е четна -> премахвам
  56.                 number = number / 10;
  57.             }
  58.         }
  59.  
  60.         //взели всички цифри и никоя не е била нечетна
  61.         return false;
  62.     }
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement