Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.48 KB | None | 0 0
  1. package com.tdudzik.testproject;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6. import java.util.Scanner;
  7.  
  8. public class TestProjectApp {
  9.  
  10.     public static void main(String[] args) throws Exception {
  11.  
  12.         while (true) {
  13.             System.out.println("Podaj liczbÄ™:");
  14.  
  15.             Scanner in = new Scanner(System.in);
  16.             String number = in.next();
  17.  
  18.             if (isDivisibleByThree(number)) {
  19.                 System.out.println("Podzielne.");
  20.             } else {
  21.                 System.out.println("Niepodzielne.");
  22.             }
  23.         }
  24.  
  25.     }
  26.    
  27.     public static boolean isDivisibleByThree(String number) {
  28.         List<Integer> digitsDivisibleByThree = Arrays.asList(0, 3, 6, 9);
  29.         int digit = reduceToOneDigit(number);
  30.        
  31.         return digitsDivisibleByThree.contains(digit);
  32.     }
  33.    
  34.     public static int reduceToOneDigit(String number) {
  35.         while (number.length() != 1) {
  36.             number = sumDigits(number);
  37.         }
  38.        
  39.         return Character.getNumericValue(number.charAt(0));
  40.     }
  41.  
  42.     public static String sumDigits(String number) {
  43.         List<Integer> digits = new ArrayList<>();
  44.         for (char ch : number.toCharArray()) {
  45.             digits.add(Character.getNumericValue(ch));
  46.         }
  47.  
  48.         return digits
  49.                 .stream()
  50.                 .map(Integer::valueOf)
  51.                 .reduce(0, Integer::sum)
  52.                 .toString();
  53.     }
  54.  
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement