Я пытался решить его сам, но я не мог получить подсказку.
Помогите мне решить это.
Медленно и наивно, но он должен работать, если точный делитель существует. Допускается дополнение, верно?
for number from 1 to input
if number == input+input+input
return number
Расширение его для дробных делителей остается как упражнение для читателя. В основном тестируйте на +1 и +2 я думаю ...
Если вам нужен ваш индекс, используйте следующее:
$("#selectoption>li").click(function(){
alert($(this).index());
});
Хотя вместо этого я бы посмотрел на ответ Тату Улманена.
-121--4746538-Некоторые идеи:
Это очень легко, так что легко я только намекну на ответ -
Основные логические логические элементы (и, или, не, xor,...) не делают деление. Несмотря на этот недостаток, ЦП могут выполнять разделение. Ваше решение очевидно: найдите ссылку, которая говорит вам, как построить делитель с логической логикой и написать какой-нибудь код для реализации этого.
Если вы используете запрос GET для отправки больших объектов, вы неправильно используете REST.
Если вы следуете этим инструкциям, вам никогда не придется иметь слишком длинные URI.
Здесь приведены рекомендации REST: http://www.xml.com/pub/a/2004/08/11/rest.html
-121--2224500-У меня есть мысль. Это случилось со мной много лет назад. В IB, связано ли ваше свойство View с вашим представлением?
Я однажды отключил их, и приложение никогда не запускалось.
Btw, хуже приходит к худшему, начать проект снова. Не стоит этих головных болей, если вы проделали 2 минут работы до сих пор.
Добро пожаловать в мир программирования iPhone. Вам может понадобиться один из этих довольно скоро wigsmen.com; -)
-121--1518349-Звучит как домашнее задание:)
I изображение можно написать функцию, которая итеративно делит число. Например, вы можете смоделировать то, что вы делаете с ручкой и листом бумаги, чтобы разделить числа. Также можно использовать операторы shift и + для определения того, являются ли промежуточные результаты слишком маленькими/большими, и итерационно применять поправки. Я не собираюсь записывать код, хотя...
if(number<0){ // Edited after comments
number = -(number);
}
quotient = 0;
while (number-3 >= 0){ //Edited after comments..
number = number-3;
quotient++;
}//after loop exits value in number will give you reminder
Редактировать: проверено и работает идеально хорошо: (
Надеюсь, это помогло.: -)
Вот решение, реализованное в C ++:
#include <iostream>
int letUserEnterANumber()
{
int numberEnteredByUser;
std::cin >> numberEnteredByUser;
return numberEnteredByUser;
}
int divideByThree(int x)
{
std::cout << "What is " << x << " divided by 3?" << std::endl;
int answer = 0;
while ( answer + answer + answer != x )
{
answer = letUserEnterANumber();
}
}
; -)
Редактировать: упс, я неправильно прочитаю вопрос о названии. Умножного оператора также запрещена.
В любом случае, я считаю, что хорошо не удалить этот ответ для тех, кто не знал о разделении на неисправность двух постоянных.
Решение состоит в том, чтобы размножаться на волшебный номер, а затем для извлечения 32 левых битов:
разделить на 3 эквивалентно умножению на 1431655766, а затем сдвиг на 32, в C:
int divideBy3(int n)
{
return (n * 1431655766) >> 32;
}
Еще один способ ускорить подсчет символов - использовать векторизацию!
Вот пример того, как это сделать в отношении UTF8-encoded последовательностей:
Даже быстрее UTF-8 подсчет символов,
http://www.daemonology.net/blog/2008-06-05-faster-utf8-strlen.html
-121--2109225-Можно попробовать
Изменить - > Intellisense - > Обновить локальный Cache (CTRL + Shift + R)
From SQL Server 2008 Intellisense update/refresh on schema changes
-121--3808437-Предполагается ли использовать itoa () для этого назначения? Потому что тогда это можно использовать для преобразования в базовый 3 последовательности, отбросить последний символ, а затем восстановить обратно в базовый 10.
Преобразование 1/3 в двоичный
SO 1/3 = 0,0101010101010101010101010101
, а затем просто «умножить» это число, используя сдвиги и сумму
unsigned int div3(unsigned int m) {
unsigned long long n = m;
n += n << 2;
n += n << 4;
n += n << 8;
n += n << 16;
return (n+m) >> 32;
}
Как насчет этого, в каком-то питоне, как псевдокод. Он разделяет ответ в целочисленную часть и часть доли. Если вы хотите преобразовать его в представление с плавающей точкой, я не уверен в лучшем способе сделать это.
x = <a number>
total = x
intpart = 0
fracpart = 0
% Find the integer part
while total >= 3
total = total - 3
intpart = intpart + 1
% Fraction is what remains
fracpart = total
print "%d / 3 = %d + %d/3" % (x, intpart, fracpart)
Обратите внимание, что это не будет работать для отрицательных чисел. Чтобы исправить, что вам нужно изменить алгоритм:
total = abs(x)
is_neg = abs(x) != x
....
if is_neg
print "%d / 3 = -(%d + %d/3)" % (x, intpart, fracpart)
для целочисленного положительного деления
result = 0
while (result + result + result < input)
result +=1
return result
long divByThree(int x)
{
char buf[100];
itoa(x, buf, 3);
buf[ strlen(buf) - 1] = 0;
char* tmp;
long res = strtol(buf, &tmp, 3);
return res;
}
Использование математического соотношения:
1/3 == Sum[1/2^(2n), {n, 1, Infinity}]
У нас есть
int div3 (int x) {
int64_t blown_up_x = x;
for (int power = 1; power < 32; power += 2)
blown_up_x += ((int64_t)x) << power;
return (int)(blown_up_x >> 33);
}
, если вы можете использовать только 32-битные целые числа,
int div3 (int x) {
int two_third = 0, four_third = 0;
for (int power = 0; power < 31; power += 2) {
four_third += x >> power;
two_third += x >> (power + 1);
}
return (four_third - two_third) >> 2;
}
4/3 - 2/3
лечение используется, потому что X >> 1
- это пол (X / 2)
вместо раунда (X / 2)
.