С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 29
1

Преобразовать элемент в числе без цикла и без рекурсии

18.10.2012, 10:10. Показов 2181. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Вопрос такой, как преобразовать элемент в целом числе, а именно самый правый 0 в 1, не используя циклы и рекурсию.
Буду рад всем идеям.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.10.2012, 10:10
Ответы с готовыми решениями:

Array: Как без цикла узнать содержится ли в массиве элемент?
Как без цикла узнать содержиться ли в массиве эллемент???

Stack Overflow без рекурсии
Предложили такую задачку. Надо написать программу, которая кидает SO, использовать рекурсию нельзя....

Быстрая сортировка без рекурсии
КАК решить быструю сортировку без рекурсии на языке java, очень очень срочно....вопрос жизни и...

Вызвать переполнение стека без рекурсии
Как вызвать переполнение стека без рекурсии? Вариант throw new StackOverflowError - тоже не...

19
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.10.2012, 11:00 2
Java
1
2
int a = 10; 
a+=1;
не?
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 29
18.10.2012, 11:13  [ТС] 3
Цитата Сообщение от mutagen Посмотреть сообщение
Java
1
2
int a = 10; 
a+=1;
не?
не

Java
1
2
int a = 101
a+=1
а=10 это только частный случай
0
Эксперт Java
4093 / 3827 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
18.10.2012, 11:39 4
Цитата Сообщение от hoocie Посмотреть сообщение
Вопрос такой, как преобразовать элемент в целом числе, а именно самый правый 0 в 1, не используя циклы и рекурсию.
А если не 0, то что? Задание не полное.
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 29
18.10.2012, 12:04  [ТС] 5
Цитата Сообщение от turbanoff Посмотреть сообщение
А если не 0, то что? Задание не полное.
вся информация, которая была в задании,вся изложена. больше ничего не говориться а что если... и тд.
требуется алгоритм,а какой - в этом все дело

Добавлено через 15 минут
задание ведь на сообразительность)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.Scanner;
 
public class Hel
{    
    public static void run(){
        try{
            int m = 3060, n = 4080, a, result;
            
            result = (int) (Math.floor( Math.random() * (n - m + 1) ) + m);
            
            System.out.println("Number: " + result);
            
            Scanner in = new Scanner(System.in);
            
            System.out.print("0-->1: ");
            
            n = in.nextInt();
            
            a = n + result;
            
            System.out.println("Result: " + a);
            
            in.close();
        }
        catch (Exception e){
            System.err.println(e.getMessage());
        }
    }
    public static void main(String[] args) {
        run();
    }
}
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 29
18.10.2012, 13:24  [ТС] 6
может у кого есть еще какие небудь идеи
0
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.10.2012, 13:45 7
дето так
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.Random;
 
public class ToZero {
    public static void main(String[] args) {
        Random random = new Random();
        for (int i = 0; i < 100; i++) {
            int r = random.nextInt(100);
            System.out.println(r + " " + getValue(r));
        }
    }
 
    static int getValue(int i) {
        char[] c = Integer.valueOf(i).toString().toCharArray();
        if (c[c.length - 1] == '0')
            c[c.length - 1] = '1';
        return Integer.parseInt(String.valueOf(c));
    }
}
0
92 / 92 / 18
Регистрация: 06.01.2012
Сообщений: 394
18.10.2012, 13:56 8
Java
1
2
3
4
5
6
7
int k = 1342420;
        
        StringBuilder bld=new StringBuilder(Integer.toString(k));
        char chLast=bld.charAt(bld.length()-1);
        if (chLast==0) bld.setCharAt(bld.length()-1, '1');
        k=Integer.parseInt(bld.toString());
        System.out.print(k);
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 29
18.10.2012, 14:01  [ТС] 9
"...не используй циклы и рекурсию..."
0
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.10.2012, 14:12 10
Цитата Сообщение от RequiemMass Посмотреть сообщение
if (chLast==0) bld.setCharAt(bld.length()-1, '1');
вот тут у вас будет отличный сигфолт )))

Добавлено через 11 минут
Цитата Сообщение от hoocie Посмотреть сообщение
"...не используй циклы и рекурсию..."
и где у меня циклы???

Java
1
2
3
4
5
6
static int getValue(int i) {
        char[] c = Integer.valueOf(i).toString().toCharArray();
        if (c[c.length - 1] == '0')
            c[c.length - 1] = '1';
        return Integer.parseInt(String.valueOf(c));
    }
0
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
18.10.2012, 14:20 11
hoocie, а вы уверены, что правильно поняли задание? Просто это довольно популярная задача, но про число в двоичном виде.
0
0 / 0 / 0
Регистрация: 08.12.2009
Сообщений: 29
18.10.2012, 14:38  [ТС] 12
Цитата Сообщение от exiqa Посмотреть сообщение
hoocie, а вы уверены, что правильно поняли задание? Просто это довольно популярная задача, но про число в двоичном виде.
уверен. я тоже догадывался про двоичный вид, видимо на это и расчитывали когда дали задание
0
92 / 92 / 18
Регистрация: 06.01.2012
Сообщений: 394
18.10.2012, 18:39 13
mutagen, можно по подробнее?
0
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.10.2012, 22:35 14
Цитата Сообщение от RequiemMass Посмотреть сообщение
mutagen, можно по подробнее?
сравнение char с int
1
213 / 202 / 85
Регистрация: 09.05.2012
Сообщений: 494
21.10.2012, 13:00 15
Java
1
2
3
4
5
6
7
8
9
10
switch(x % 10) {
    case 0: return x + 1;
    case 1: return x - 1;
    default: return x;
}
// для битов:
switch(x & 0x1) {
    case 0: return x | 0x1;
    case 1: return x & 0xfffffffe;
}
не?
0
14 / 13 / 5
Регистрация: 04.10.2012
Сообщений: 29
21.10.2012, 18:20 16
Как я понимаю, возможны варианты типа
40567 -> 41567
401230567 -> 401231567
Поэтому в варианте mutagen надо найти последнее вхождение lastIndexOf('0') в строку, а затем заменить его на '1'.

Добавлено через 10 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.*;
 
public class Last
{
        public static void main(String[] args)throws Exception
        {
                Scanner sc = new Scanner(System.in);
                int val  = sc.nextInt();
                System.out.println(getValue(val));
 
        }
 
        static int getValue(int i) {
                String str = Integer.valueOf(i).toString();
                int index = str.lastIndexOf('0');
                char[] c = str.toCharArray();
                c[index] = '1';
                return Integer.parseInt(String.valueOf(c));
        }
}
0
92 / 92 / 18
Регистрация: 06.01.2012
Сообщений: 394
21.10.2012, 23:08 17
mutagen, чем оправдано использование valueOf в строке
Java
1
char[] c = Integer.valueOf(i).toString().toCharArray();?
Добавлено через 31 минуту
Ну или даже по другому спрошу, критично ли, что вы используете класс обёртку?
0
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
22.10.2012, 01:17 18
Цитата Сообщение от RequiemMass Посмотреть сообщение
критично ли, что вы используете класс обёртку?
я не понимаю вопроса, что за смысл Вы вкладываете в "критично" и для чего нужно оправдание Integer.valueOf(i)?
0
92 / 92 / 18
Регистрация: 06.01.2012
Сообщений: 394
22.10.2012, 13:10 19
mutagen, Я всё это к тому, что можно просто вот так написать.
Java
1
Integer.toString(k).toCharArray();
0
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
22.10.2012, 21:01 20
ваш вариант популирует новый String объект, а мой кеширован, хотя в итоге всё равно вызывается ваш.
Это привычка просто пользоваться экономными к памяти вариантами и в данном конкретном случае она ничего не даёт.
Но вот если бы этих интежеров было много и они нужны были бы как интежеры а не как строка, вот тогда бы стало заметно на моём варианте

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static Integer valueOf(int i) {
        assert IntegerCache.high >= 127;
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }
 
 public static String toString(int i) {
        if (i == Integer.MIN_VALUE)
            return "-2147483648";
        int size = (i < 0) ? stringSize(-i) + 1 : stringSize(i);
        char[] buf = new char[size];
        getChars(i, size, buf);
        return new String(buf, true);
    }
2
22.10.2012, 21:01
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2012, 21:01
Помогаю со студенческими работами здесь

Вычисление факториалов больших чисел, без рекурсии
public static void main(String args) { BigInteger bi1, bi2, bi3; int n = 20; ...

Как обойти дерево файловой системы БЕЗ рекурсии
Подскажите как обойти дерево файловой системы на заданную глубину БЕЗ рекурсии, и найти элементы...

Работа с массивом без цикла
Есть массив из N элементов. Возможно ли без цикла узнать, есть ли в массиве такой элемент с...

Как без цикла объявить?
ArrayList mat = new ArrayList; //как не делать этот цикл? for(int i=0;i&lt;n;i++) { mat=new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала согласования+ стартер fast регистров. Файлы прилагаю. . . .
UserScript для подсветки кнопок языков программировани­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форм быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru