Как записать число в обратном порядке на JAVA?
На JAVA не знаю, но идея в том, чтобы преобразовать его в строку, строку посимвольно перевернуть, затем строку преобразовать обратно в число.
AsmophelПрофи (599) 1 год назад
Да, только если ты будешь на собеседовании проходить задание на алгоритмы, тебя пошлют на три буквы. Поэтому нужен способ без преобразования числа
public static int mirrorNum(int num) <
int mirror = 0;
while (num != 0) <
mirror = mirror * 10 + (num % 10);
num = num / 10;
>
return mirror;
>
Джон ИвановУченик (181) 3 года назад
Вот кто делает вещи, выручил!
Shahboz SabirovУченик (145) 2 года назад
можно еще короче
Scanner xy = new Scanner(System.in);
int x, x1,x2,x3;
x=xy.nextInt();
x1=x/100;
x2=(x%100)/10;
x3=x%10;
System.out.println(x3+» «+x2+» «+x1);
Shahboz Sabirov Ученик (145) Shahboz Sabirov, но только 3 значное число я подумал в вопросе написано 3 значное число ошибся =)
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package exercise.pkg4;
import java.util.Scanner;
/**
*
* @author Джеймс Гудвин
*/
public class Exercise4
/**
* @param args the command line arguments
*/
public static void main(String[] args) // TODO code application logic here
Scanner sc=new Scanner (System.in);
System.out.println(«Введите трёхзначное число и напишу его в обратном порядке»);
int a;
System.out.print («a обратный порядок «+a%10+»»+a/10%10+»»+a/100%10);
простой и понятнее
Scanner xy = new Scanner(System.in);
int x, x1,x2,x3;
x=xy.nextInt();
x1=x/100;
x2=(x%100)/10;
x3=x%10;
System.out.println(x3+» «+x2+» «+x1);
если ввели 123 то
x3= 3 //остаток от деление
х2= 2 //123 : 100 остаток от деление делим на 10
х1= 1 //остаток от деление
public static void main(String[] args)
int num = 1234567;
reversed = 0;
for(;num != 0; num /= 10) <
int digit = num % 10;
reversed = reversed * 10 + digit;
>
System.out.println(«Reversed Number: » + reversed);
>
Обратное число в Java
В этом уроке мы увидим, как инвертировать число, используя математический подход в Java. Сначала мы увидим, какие математические операции необходимы для этого, а затем рассмотрим три различных способа реализации.
2. Подход к решению
Для начала давайте возьмем пример и посмотрим, что именно должно произойти. Например, мы хотим, чтобы число 1234 стало 4321. Этого можно добиться с помощью следующего подхода:
- получить последнюю цифру числа
- мы можем применить модуль, чтобы получить последнюю цифру
- 1-я итерация – 1234 % 10 = 4
- 2-я итерация – 123 % 10 = 3
- умножьте обратное число на 10 и добавьте цифру, найденную на предыдущем шаге
- 1-я итерация — 0 * 10 + 4 = 4 (поскольку для начала нет перевернутого числа, мы умножаем на 0 в 1-й итерации)
- 2-я итерация – 4*10+3=43
- разделите исходное число на 10 и повторите с шага 1 и продолжайте, пока число не станет 0
- 1-я итерация — 1234/10 = 123
- 2-я итерация – 123/10=12
3. Математическая реализация
Мы хотим перевести математические операции выше в код. Это возможно тремя различными способами: с помощью цикла while , цикла for или рекурсии.
Приведенные ниже подходы также учитывают отрицательные значения, используя абсолютное значение числа, которое необходимо обратить, и умножив обращенное число на -1, если исходное число отрицательное.
3.1. пока цикл
Цикл while находится первым в списке, так как это самый понятный способ перевода математических операций выше:
int reversedNumber = 0; int numberToReverse = Math.abs(number); while (numberToReverse > 0) int mod = numberToReverse % 10; reversedNumber = reversedNumber * 10 + mod; numberToReverse /= 10; > return number 0 ? reversedNumber * -1 : reversedNumber;
3.2. для цикла
При использовании цикла for логика такая же, как и раньше. Мы пропускаем оператор инициализации цикла for и используем число, которое переворачивается в завершающем условии:
int reversedNumber = 0; int numberToReverse = Math.abs(number); for (; numberToReverse > 0; numberToReverse /= 10) int mod = numberToReverse % 10; reversedNumber = reversedNumber * 10 + mod; > return number 0 ? reversedNumber * -1 : reversedNumber;
3.3. Рекурсия
Для рекурсии мы можем использовать метод-оболочку, который вызывает рекурсивный метод, возвращающий перевернутое число:
int reverseNumberRecWrapper(int number) int output = reverseNumberRec(Math.abs(number), 0); return number 0 ? output * -1 : output; >
Метод рекурсии реализует математические операции так же, как и в предыдущих примерах:
int reverseNumberRec(int numberToReverse, int recursiveReversedNumber) if (numberToReverse > 0) int mod = numberToReverse % 10; recursiveReversedNumber = recursiveReversedNumber * 10 + mod; numberToReverse /= 10; return reverseNumberRec(numberToReverse, recursiveReversedNumber); > return recursiveReversedNumber; >
Рекурсивный метод возвращает текущее обращенное число на каждой итерации, а число, подлежащее обращению, укорачивается с каждой итерацией. Это происходит до тех пор, пока число, которое нужно перевернуть, не станет равным 0, и в этот момент мы возвращаем полностью перевернутое число.
4. Вывод
В этой статье мы рассмотрели три различных реализации обращения числа с использованием цикла while , цикла for и рекурсии.
Как всегда, исходный код примеров доступен на GitHub .
- 1. Обзор
- 2. Подход к решению
- 3. Математическая реализация
- 3.1. пока цикл
- 3.2. для цикла
- 3.3. Рекурсия
Как «перевернуть» число с плавающей запятой, в отношении к setAlpha();?
Как сделать так называемый «реверс» для числа с плавающей запятой? Например есть число с плавающей запятой. Его диапазон от 0.0f до 1.0f . По дефолту число равно 0.0f . Когда происходит действие, оно увеличивается. 0.10f 0.23f 0.37f 0.40f и так до 1.0f . То есть 0 стремится к 1 . Есть метод для View view.setAlpha(float); , позволяющий установить прозрачность для View элемента. Если 0 — значит прозрачный, если 1 — значит видимый. И когда View элемент снизу экрана начать тащить вверх экрана, нужно чтобы он становился прозрачным ( 0.f ). А он наоборот становится видимым, из за того что туда 1.0f вместо 0.f приходит.
if (slideOffset > 0.0f && slideOffset < 1.0f) < view.setAlpha(slideOffset); >else
Отслеживать
задан 17 июн 2019 в 18:04
691 6 6 серебряных знаков 24 24 бронзовых знака
Наверное у вас slideOffset это int, вот он и округляется до 1
17 июн 2019 в 18:06slideOffset это точно float. Всё работает как и положено. Нужно только сделать наоборот чтобы не от 0 к 1 стремилось значение, а от 1 к 0. Иначе я делаю элемент view видимым , вместо прозрачности.
17 июн 2019 в 18:08
@ЮрийСПб, это в библиотеке ‘com.sothree.slidinguppanel:library:3.4.0’ в слушателе приходит значение onPanelSlide(View panel, float slideOffset)
Как поменять число в Java? Использование while Loop и Java Recursion методов

Как поменять число в Java? Как перевернуть число в Java, используя метод рекурсии ? В этом уроке мы рассмотрим все детали того, как reverse a number используя цикл цикла и метод рекурсии.
Логика очень проста: в каждой итерации while loop , остаток, когда crunchifyNo делится на 10 рассчитывается и значение crunchifyNo уменьшается в разы.
На сайте есть еще одно руководство о том, как зарезервировать строку в Java , если вы заинтересованы.