Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package src;
- import java.util.Random;
- import java.util.Scanner;
- public class Will {
- public static void main(String[] args) {
- // В този пример ще видиш как се намират числата на единици, десетици, стотици и тн. в дадено число по няколко начина.
- Scanner s = new Scanner(System.in);
- // За примера ще направя така, че да се генерира случайно число от 0 до 99 999.
- Random r = new Random();
- int num = r.nextInt(99999);
- System.out.println("Rand: " + num);
- // Ще инициализирам тук нужните променливи, по имената може да се досетиш за тяхната употреба.
- int ed, des, stot, hil, deshil, numCopy, temp, index;
- int arr[] = new int[6];
- // Първият пример е най-удобен за начално научаване. Използват се променливи за всеки вид число, което искаш да намериш.
- // Модулният оператор се използва с цел да намериш остатъка от делене на определено число.
- // Например: 7%2 = 1, защото в 7 имаш 3 пъти числото 2 и като го изкараш ти остава 1. 53%5=3, защото то се дели на 10*5 и имаш остатък 3.
- // Ако не можеш да го разбереш - ще ти дообясня.
- // Чрез модулният оператор намираш каква е последната цифра на числото. Например 53 876 % 10 = 6, т.е така намираш единици, десетици, стотни и тн.
- // След всеки модулен оператор делиш числото на 10 за да премахнеш последната цифра и да добавиш изкараш следващата чрез модул.
- // Например: 53 876 / 10 = 5 387. Сега като му дадеш отново модулен оператор ще намериш, че 5 387 % 10 = 7, тоест десетиците са ти 7.
- // По този начин продъжлаваш до края.
- System.out.println("\nПърви пример: ");
- numCopy = num;
- ed = numCopy%10;
- numCopy /= 10;
- des = numCopy%10;
- numCopy /= 10;
- stot = numCopy%10;
- numCopy /= 10;
- hil = numCopy%10;
- numCopy /= 10;
- deshil = numCopy%10;
- numCopy /= 10;
- System.out.println("Единици: " + ed);
- System.out.println("Десетици: " + des);
- System.out.println("Стотици: " + stot);
- System.out.println("Хилядни: " + hil);
- System.out.println("Десетохилядни: " + deshil);
- // Вторият пример е по-удобен от практическа гледна точка. Ако имаш задача, в която имаш число с неизвестна големина чрез while няма да налучкваш колко е голямо.
- // Също така може да се използва, ако числото е твърде голямо. Ще е изключително досадно да правиш променлива за Милиони, Милиарди и тн. Много ще стане!
- // Идеяата на този метод е while цикълът да се върти докато числото ти не стане 0. След като стане 0, то вече е намерило всички стойности и си е свършило работата.
- // Използваме същият начин чрез модулният оператор и деленето след него!
- System.out.println("\nВтори пример:");
- numCopy = num;
- while(numCopy!=0) {
- temp = numCopy%10;
- numCopy /= 10;
- System.out.println("Елемент: " + temp);
- }
- // Този метод е малко по-особен, но исках да ти го покажа с чистата идея да ти дам практически примери за това какви задачи и как могат да се направят.
- // Тук ползваме for цикъл, тъй като той може по-лесно да се контролира колко на кое завъртане искаш да се спре.
- // Като за начало си попълваш една стойност в променливата index, която ще използваш за да укажеш на цикъла на кое завъртане да спре и кой индекс да ти търси съответно.
- // Цикълът си прави врътките и спира на зададеният индекс.
- // Още един бонус, който ти показвам тук е, че можеш да използваш масив, който да напълниш използвайки само i променливата на цикъла.
- // Съответно аз направих още един for цикъл, където ти показвам как се е запълнил успешно до индекса, който сме оказали.
- // For цикъла се върти колкото е дължината на масива, а не колкото е index променливата.
- System.out.println("\nТрети пример: ");
- System.out.println("Въведи кой индекс от числото искаш да изведеш(отзад-напред): ");
- numCopy = num;
- index = s.nextInt();
- System.out.println("Извеждане на елементи на числото до указания индекс: ");
- for(int i = 0; i < index; i++) {
- temp = numCopy%10;
- numCopy /= 10;
- System.out.println("Елемент " + (i+1) + ": " + temp);
- arr[i] = temp;
- }
- System.out.println("Извеждане на всички елементи на масива: ");
- for(int i = 0; i < arr.length-1; i++) {
- System.out.println("arr[" + i + "] = " + arr[i]);
- }
- System.out.println("Число на мястото на индекс " + index + ": " + arr[index-1]);
- //Scanner функцията иска да бъде затворена, иначе ми изкарва предупреждение и това ме дразни :DDDdd
- s.close();
- }
- }
Add Comment
Please, Sign In to add comment