Advertisement
Anon017706349

HappyNumber v2

Oct 11th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.Vector;
  3.  
  4.  
  5. class HappyNumber
  6. {
  7.  
  8. static int squareSum(int n)
  9. {
  10. if (n == 0)
  11. {
  12. return 0;
  13. }
  14.  
  15. else
  16. {
  17. int digit = n % 10;
  18. return (digit * digit + squareSum(n / 10));
  19. }
  20. }
  21.  
  22.  
  23. public static void main (String[] args)
  24. {
  25. Vector<Integer> v = new Vector<>(1);
  26.  
  27. Scanner ui = new Scanner(System.in);
  28. int userNumber = 0;
  29. int firstNumber = 0; // so program correctly prints correct first given number
  30.  
  31. do // only allows positive int as an input
  32. {
  33. System.out.println("Please enter a positive integer.");
  34. while (!ui.hasNextInt())
  35. {
  36. System.out.println("Invalid input. Please enter a positive integer.");
  37. ui.next();
  38. }
  39.  
  40. userNumber = ui.nextInt();
  41. firstNumber = userNumber;
  42.  
  43. }
  44. while (userNumber <= 0);
  45.  
  46. int a = 0; // initializing loop values
  47. int b = 0;
  48. boolean dupe = false;
  49.  
  50. do
  51. {
  52. a = userNumber;
  53. b = squareSum(a);
  54.  
  55. v.add(a); // adding the value to the vector to print each intermediate number
  56.  
  57. userNumber = b;
  58.  
  59. // loop for checking duplicates
  60.  
  61. for (int j = 0; j < v.size(); j++)
  62. {
  63. for (int k = j + 1; k < v.size(); k++)
  64. {
  65. if (k !=j && v.get(k) == v.get(j))
  66. {
  67. dupe = true;
  68. }
  69. }
  70. }
  71.  
  72. if (b == a)
  73. {
  74. break;
  75. }
  76. }
  77.  
  78. while(dupe == false);
  79.  
  80. System.out.println(v);
  81.  
  82. if (dupe == true)
  83. {
  84. System.out.println(firstNumber + " is unhappy.");
  85. }
  86.  
  87. else
  88. {
  89. System.out.println(firstNumber + " is happy.");
  90. }
  91.  
  92.  
  93. ui.close();
  94.  
  95. }
  96.  
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement