Форум программистов, компьютерный форум, киберфорум
Наши страницы

Алгоритмы

Войти
Регистрация
Восстановить пароль
 
svfolder
0 / 0 / 0
Регистрация: 12.12.2009
Сообщений: 15
#1

Поразрядное вычисление N+1 - Алгоритмы

12.12.2009, 00:29. Просмотров 600. Ответов 2
Метки нет (Все метки)

Доброго времени суток всем форумчанам!

Хотел попросить помощи у разбирающихся в вопросе.
Сразу скажу, вопрос более чем просто нестандартен, поэтому прошу заранее, советы типа "проще сложить вручную столбиком" или вопросы типа "зачем такие ограничения" не давать.

Вопрос следующий:

Необходимо написать PHP-функцию c целочисленным аргументом AddOne(n), которая возвращает n+1.
Нельзя использовать следующие арифметические операции в теле функции: + - * / ++ -- += -=


Сам не первый год программингом занимаюсь, и понимаю что надо делать операциями сдвига разрядов или другими логичискими операторами, но не владею достаточными знаниями в этой области.

Прошу помощи.

С Уважением Дмитрий.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2009, 00:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поразрядное вычисление N+1 (Алгоритмы):

Поразрядное отрицание - C++
В общем мне нужно посторить транслятор программ заданного языка, реализующий механизм рекурсивного спуска. Все работает кроме...

Поразрядные поразрядное И (&) - C++
есть такой пример a%16 = a&(16-1) как преобразовать тогда тогда a%2, a%3, a%4, a%10? Добавлено через 13 минут извините за...

Поразрядное сравнение чисел - C++
Здравствуйте. Нужно написать программу сравнения двух чисел размера N. Они должны быть представлены в виде целочисленных массивов. Кто-...

Поразрядное вычитание чисел столбиком - C (СИ)
Всем привет,можно пример поразрядного вычитания чисел?(столбиком)

XOR и поразрядное или не работают - C++
Собственно есть числа: 0011 0010 - bit_text==1(идём справа налево) 0100 0011 - это биты val_bmp какого-то числа. Мне надо bit_text...

Поразрядное сложение и вычитание чисел - C (СИ)
Всем привет! объясните пожалуйста,нужно написать функции для поразрядного сложения и вычитания длинных целых чисел, представленных строками...

2
manfeese
130 / 129 / 16
Регистрация: 04.01.2009
Сообщений: 415
12.12.2009, 01:28 #2
Вот на С++ Используй аналогию...

C++
1
2
3
4
5
6
7
8
9
10
11
unsigned AddOne(unsigned n)
{
  unsigned i=1;
  while (i)
  {
       n^=i;
       if (!(n&i)) i<<=1;
       else i=0;
  }
  return n;
}
2
svfolder
0 / 0 / 0
Регистрация: 12.12.2009
Сообщений: 15
12.12.2009, 12:49  [ТС] #3
Огромнейшее Спасибо!

Все тоже самое на PHP, работает.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function AddOne($n){
    
    $i = 1;
    
    while ($i) {
        
        $n ^= $i;
        if (!($n & $i) ) {
            
            $i <<= 1;
            
        }else{
            $i = 0;         
        }
        
    }
    
    return $n;
}
Еще раз спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2009, 12:49
Привет! Вот еще темы с ответами:

Найти поразрядное сложение цифр числа - QBasic
Помогите пожалуйста...... бейсик не знаю вооюще, а препод домахался что бы было все на этом языке...... за ранее спасибо.... даны 2...

Зачем нужно поразрядное сравнение в VBA - VBA
Зачем нужно поразрядное сравнение в VBA? Приведите примеры практического применения поразрядного сравнения для оператора And. Вот...

"Поразрядное Исключающее Или" с присваиванием - C++
Бъясните пожалуйста как работает &quot;Поразрядное исключающее ИЛИ с присваиванием(^=)&quot; на примере: mass^= mass^= mass^= mass;

Поразрядное "и" - C++
A = 12 B = 8 C = 34 D = 123 D - выполнить поразрядное «и» 1-6 разрядов В и 0-2 разрядов С, сдвинутых вправо на 1 разряд. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.