Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.58 KB | None | 0 0
  1.  
  2. fun main(args: Array<String>) {
  3.     doPart1()
  4.     doPart2()
  5.     doPart3()
  6.     doPart4()
  7. }
  8.  
  9. fun hasRequiredDigits(number: Int, digits: Int, canBeGreater: Boolean = false): Boolean {
  10.     val numberLength = Math.abs(number).toString().length
  11.     if(canBeGreater)
  12.         if(numberLength >= digits) return true
  13.         else {
  14.             println("Number must be $digits-digit or greater.")
  15.             return false
  16.         }
  17.     if(numberLength == digits) return true
  18.     else {
  19.         println("Number is not $digits-digit.")
  20.         return false
  21.     }  
  22. }
  23.  
  24. fun isNatural(number: Int): Boolean {
  25.     if(number > 0) return true
  26.     else {
  27.         println("Number is not natural.")
  28.         return false
  29.     }
  30. }
  31.  
  32. fun inputNumber(objectName: String,
  33.                 digitsNeeded:Int = 0,
  34.                 naturalNeeded: Boolean = false) :Int {
  35.     var inputValue: Int
  36.     while(true) {
  37.         try{
  38.             println("\nInput the value of $objectName, please.")
  39.             inputValue = readLine()!!.toInt()
  40.             if(digitsNeeded == 0 || hasRequiredDigits(inputValue, digitsNeeded))
  41.                 if(!naturalNeeded || isNatural(inputValue)) break
  42.         }
  43.         catch(e: NumberFormatException){
  44.             println("An integer value is expected. ")
  45.         }
  46.     }
  47.     return inputValue
  48. }
  49.  
  50. fun doPart1 () {
  51.     println("--Part 1, variant 4: get sum of all whole numbers from a to b.")
  52.     var result = 0
  53.     val a = inputNumber("a")
  54.     var b: Int
  55.     while(true) {
  56.         b = inputNumber("b")
  57.         if(b < a) println("b can NOT be less than a.")
  58.         else break
  59.     }  
  60.     for(i in a..b) result += i
  61.     println("Sum of the numbers from a to b is $result.")
  62. }
  63.  
  64. fun doPart2() {
  65.     println("\n--Part 2, variant 4: check if digits of a two-digit number are equal.")
  66.     val number = inputNumber("two-digit number",2)
  67.     val numberInString = Math.abs(number).toString()
  68.     if(numberInString[0]==numberInString[1]) println("Digits are equal.")
  69.     else println("Digits are NOT equal.")
  70. }
  71.  
  72. fun doPart3() {
  73.     println("\n--Part 3, variant 4: check if sum of digits of a four-digit number is divisible by 3.")
  74.     val number = Math.abs(inputNumber("four-digit number"))
  75.     var numberInString = number.toString()
  76.     var sum = 0
  77.     for(i in numberInString) sum+= i.toInt()
  78.     println("Sum of digits is divisible by 3: ${sum % 3 == 0}.")
  79. }
  80.  
  81. fun doPart4() {
  82.     println("\n--Part 4, variant 4: check if first digit is greater than the last one or vice versa.")
  83.     val number = inputNumber("natural two-digit number",2,true)
  84.     val firstDigit = number.toString()[0].toInt()
  85.     val lastDigit = number % 10
  86.     if(firstDigit > lastDigit) println("First digit is greater than the last one.")
  87.     else if(firstDigit < lastDigit) println("Last digit is greater than the first one")
  88.     else println("First and last digits of the number are equal.")
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement