kalin729

Will

Nov 8th, 2020 (edited)
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.44 KB | None | 0 0
  1. package src;
  2.  
  3. import java.util.Random;
  4. import java.util.Scanner;
  5.  
  6. public class Will {
  7.  
  8.     public static void main(String[] args) {
  9.        
  10. //      В този пример ще видиш как се намират числата на единици, десетици, стотици и тн. в дадено число по няколко начина.
  11.        
  12.         Scanner s = new Scanner(System.in);
  13.        
  14. //      За примера ще направя така, че да се генерира случайно число от 0 до 99 999.
  15.         Random r = new Random();
  16.         int num = r.nextInt(99999);
  17.        
  18.         System.out.println("Rand: " + num);
  19.        
  20. //      Ще инициализирам тук нужните променливи, по имената може да се досетиш за тяхната употреба.
  21.         int ed, des, stot, hil, deshil, numCopy, temp, index;
  22.         int arr[] = new int[6];
  23.        
  24. //      Първият пример е най-удобен за начално научаване. Използват се променливи за всеки вид число, което искаш да намериш.
  25. //      Модулният оператор се използва с цел да намериш остатъка от делене на определено число.
  26. //      Например: 7%2 = 1, защото в 7 имаш 3 пъти числото 2 и като го изкараш ти остава 1. 53%5=3, защото то се дели на 10*5 и имаш остатък 3.
  27. //      Ако не можеш да го разбереш - ще ти дообясня.
  28. //      Чрез модулният оператор намираш каква е последната цифра на числото. Например 53 876 % 10 = 6, т.е така намираш единици, десетици, стотни и тн.
  29. //      След всеки модулен оператор делиш числото на 10 за да премахнеш последната цифра и да добавиш изкараш следващата чрез модул.
  30. //      Например: 53 876 / 10 = 5 387. Сега като му дадеш отново модулен оператор ще намериш, че 5 387 % 10 = 7, тоест десетиците са ти 7.
  31. //      По този начин продъжлаваш до края.
  32.         System.out.println("\nПърви пример: ");
  33.         numCopy = num;
  34.         ed = numCopy%10;
  35.         numCopy /= 10;
  36.         des = numCopy%10;
  37.         numCopy /= 10;
  38.         stot = numCopy%10;
  39.         numCopy /= 10;
  40.         hil = numCopy%10;
  41.         numCopy /= 10;
  42.         deshil = numCopy%10;
  43.         numCopy /= 10;
  44.         System.out.println("Единици: " + ed);
  45.         System.out.println("Десетици: " + des);
  46.         System.out.println("Стотици: " + stot);
  47.         System.out.println("Хилядни: " + hil);
  48.         System.out.println("Десетохилядни: " + deshil);
  49.        
  50. //      Вторият пример е по-удобен от практическа гледна точка. Ако имаш задача, в която имаш число с неизвестна големина чрез while няма да налучкваш колко е голямо.
  51. //      Също така може да се използва, ако числото е твърде голямо. Ще е изключително досадно да правиш променлива за Милиони, Милиарди и тн. Много ще стане!
  52. //      Идеяата на този метод е while цикълът да се върти докато числото ти не стане 0. След като стане 0, то вече е намерило всички стойности и си е свършило работата.
  53. //      Използваме същият начин чрез модулният оператор и деленето след него!
  54.         System.out.println("\nВтори пример:");
  55.         numCopy = num;
  56.         while(numCopy!=0) {
  57.             temp = numCopy%10;
  58.             numCopy /= 10;
  59.             System.out.println("Елемент: " + temp);
  60.         }
  61.        
  62. //      Този метод е малко по-особен, но исках да ти го покажа с чистата идея да ти дам практически примери за това какви задачи и как могат да се направят.
  63. //      Тук ползваме for цикъл, тъй като той може по-лесно да се контролира колко на кое завъртане искаш да се спре.
  64. //      Като за начало си попълваш една стойност в променливата index, която ще използваш за да укажеш на цикъла на кое завъртане да спре и кой индекс да ти търси съответно.
  65. //      Цикълът си прави врътките и спира на зададеният индекс.
  66. //      Още един бонус, който ти показвам тук е, че можеш да използваш масив, който да напълниш използвайки само i променливата на цикъла.
  67. //      Съответно аз направих още един for цикъл, където ти показвам как се е запълнил успешно до индекса, който сме оказали.
  68. //      For цикъла се върти колкото е дължината на масива, а не колкото е index променливата.
  69.         System.out.println("\nТрети пример: ");
  70.         System.out.println("Въведи кой индекс от числото искаш да изведеш(отзад-напред): ");
  71.         numCopy = num;
  72.         index = s.nextInt();
  73.         System.out.println("Извеждане на елементи на числото до указания индекс: ");
  74.         for(int i = 0; i < index; i++) {
  75.             temp = numCopy%10;
  76.             numCopy /= 10;
  77.             System.out.println("Елемент " + (i+1) + ": " + temp);
  78.             arr[i] = temp;
  79.         }
  80.        
  81.         System.out.println("Извеждане на всички елементи на масива: ");
  82.         for(int i = 0; i < arr.length-1; i++) {
  83.             System.out.println("arr[" + i + "] = " + arr[i]);
  84.         }
  85.        
  86.         System.out.println("Число на мястото на индекс " + index + ": " + arr[index-1]);
  87.  
  88.         //Scanner функцията иска да бъде затворена, иначе ми изкарва предупреждение и това ме дразни :DDDdd
  89.         s.close();
  90.     }
  91.  
  92. }
  93.  
Add Comment
Please, Sign In to add comment