HW5.31

时间:2023-03-08 22:00:35

HW5.31

HW5.31

 import java.util.Scanner;

 public class Solution
 {
     public static void main(String[] args)
     {
         Scanner input = new Scanner(System.in);
         System.out.print("Enter an ID number: ");
         long id = input.nextLong();

         input.close();

         System.out.println(isValid(id));
     }

     public static boolean isValid(long number)
     {
         int sum = sumOfDoubleEvenPlace(number) + sumOfOddPlace(number);
         if(sum % 10 == 0)
             return true;
         else
             return false;
     }

     public static int sumOfDoubleEvenPlace(long number)
     {
         int sum = 0;
         while(number > 10)
         {
             sum += getDigit((int)(number % 10));
             number /= 10;
         }
         sum += getDigit((int)number);
         return sum;
     }

     public static int getDigit(int number)
     {
         if(number < 10)
             return number;
         else
             return number / 10 + number % 10;
     }

     public static int sumOfOddPlace(long number)
     {
         int sum = 0;
         for(int i = 2; i <= 10; i += 2)
             sum += (getPrefix(number, i) % 10);
         return sum;
     }

     public static boolean prefixMatched(long number, int d)
     {
         long longD = (long)d;
         if(getPrefix(number, getSize(d)) == longD)
             return true;
         else
             return false;
     }

     public static int getSize(long d)
     {
         int count = 1;
         while(d > 10)
         {
             count++;
             d /= 10;
         }
         return count;
     }

     public static long getPrefix(long number, int k)
     {
         if(getSize(number) < k)
             return number;
         else
         {
             String tempString = "" + number;
             tempString = tempString.substring(0, k);
             long temp = Long.parseLong(tempString);
             return temp;
         }
     }
 }