desislava_topuzakova

10. Top Number

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