Перейти к содержимому

Как перевернуть число в java

  • автор:

Как записать число в обратном порядке на 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. получить последнюю цифру числа
  • мы можем применить модуль, чтобы получить последнюю цифру
  • 1-я итерация – 1234 % 10 = 4
  • 2-я итерация – 123 % 10 = 3
  1. умножьте обратное число на 10 и добавьте цифру, найденную на предыдущем шаге
  • 1-я итерация — 0 * 10 + 4 = 4 (поскольку для начала нет перевернутого числа, мы умножаем на 0 в 1-й итерации)
  • 2-я итерация – 4*10+3=43
  1. разделите исходное число на 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:06

    slideOffset это точно 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 , если вы заинтересованы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *