Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2013, 23:53   #11
dykee
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 78
По умолчанию

Я удалю сообщения) можете мне последний раз очень доступно для чайника объяснить почему с 1 до 19 будет 1 выдавать и все я больше не потревожу

Боже огромное Вам спасибо, очень помогли!!!!Спасибо!!!!

Последний раз редактировалось Serge_Bliznykov; 10.10.2013 в 09:11.
dykee вне форума Ответить с цитированием
Старый 12.10.2013, 20:34   #12
dykee
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 78
По умолчанию

Здравствуйте Не могли бы вы мне помочь?! Задание: Дано двузначное число. Определить кратна ли сумма его цифр числу а.язык Си не могу подобрать формулу...
dykee вне форума Ответить с цитированием
Старый 12.10.2013, 21:08   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

dykee,
1) не нужно все же писать в чужой теме, а нужно создавать свою, согласно правилам
(просто прошлый вопрос совпадал с начатой темой)
2) не нужно писать в нескольких темах один и тот же вопрос
3)
Код:
int a, b;
if ((b % 10 + b / 10) % a == 0)
    printf("кратна");
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.10.2013, 21:44   #14
dykee
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 78
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
dykee,
1) не нужно все же писать в чужой теме, а нужно создавать свою, согласно правилам
(просто прошлый вопрос совпадал с начатой темой)
2) не нужно писать в нескольких темах один и тот же вопрос
3)
Код:
int a, b;
if ((b % 10 + b / 10) % a == 0)
    printf("кратна");

Почему выражение будет ровняться 0? Прокомментируйте пожалуйста, то что вы написали, учу язык только 1 месяц простите за назойливость просто хочу понять
dykee вне форума Ответить с цитированием
Старый 12.10.2013, 21:51   #15
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Число b:
b % 10 - число единиц
b / 10 - число десятков
Число кратно другому числу, если делится без остатка. % - взятие остатка.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 30.03.2016, 02:30   #16
zagonicb
Пользователь
 
Регистрация: 30.03.2016
Сообщений: 14
По умолчанию

Здравствуйте уважаемый BDA. Надеюсь вы приветствуете новичков) Я программирую на js, дошел до объектной модели, но понял, что с логикой у меня беда, поэтому скачал задачник Златопольского и решил прорешать все задачи, и дошел до этой, так что по теме. Вы написали формулы. У меня есть вопросы) Как вы додумались до этих формул? Хочу так же научиться)
а) Если за k взять допустим 2 по первой формуле будет 1 без остатка порядковый номер двузначного числа, согласен, взять 3 будет 2, согласен, дальше интереснее, взять 4 будет 2.5... ошибка?
б) думаю вторая формула уже не подойдет...
в) Надеюсь совместно мы с вами дойдем и разберемся)
Цитата:
Сообщение от BDA Посмотреть сообщение
а) a = (k - 1)/2 + 1
б) b = a + 9
в) c = ((k / 2 - 1) % 10) * (k % 2 == 0) + (k / 20 + 1) * (k % 2 == 1)
Спасибо вам, если поможете)
Если конечно вы мне дадите совет по обучению, буду очень рад, так как я самоучка)
Вы уж извините, если по поводу формул я задал глупый вопрос, я боюсь выражать свои мысли опытным программистам, тем самым быть высмеянным, но тем не менее я намерен добиться успеха и так же помогать людям.
|| запинается на «правде», && запинается на «лжи».

Последний раз редактировалось zagonicb; 30.03.2016 в 02:40.
zagonicb вне форума Ответить с цитированием
Старый 30.03.2016, 14:34   #17
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Ух, какой хороший некропост получается
Здравствуйте, zagonicb. Практика это правильно. Скачал задачник - эта задачка в разделе повышенной сложности, оказывается.
"додумались до этих формул?" - никакого четкого алгоритма нет.
а) Во-первых, деление целочисленное, так что никаких 2.5
Во-вторых, рассуждения примерно такие: k изменяется каждую цифру ряда, а номер пары каждые 2 цифры ряда. Попробуем k / 2. Получается не совсем верно (номер пары меняется не на границе пар, а между цифрами одной пары). Тогда перенумеруем цифры с нуля (так правда удобнее). (k - 1) / 2 - стало лучше, но теперь пары с нуля нумеруются, а нужно с единицы. Итог: (k - 1) / 2 + 1.
б) Так как уже известен порядковый номер пары с k-ой цифрой, то можно заметить, что номер отличается от значения пары на 9 (по сути рассматривается ряд натуральных чисел без первых девяти однозначных).
в) c = ((k / 2 - 1) % 10) * (k % 2 == 0) + (k / 20 + 1) * (k % 2 == 1)
Во-первых, таким способом записываются два возможных случая сразу (при четном и нечетном k). Это же можно записать так:
Код:
if (k % 2 == 0) // k - четное
    c = (k / 2 - 1) % 10;
else
    c = k / 20 + 1;
Чтобы найти закономерность, нужно выписать ряд и внимательно на него посмотреть. Можно заметить, что на четных позициях в ряду находится младший разряд пары, а на нечетных - старший. k меняется на 2, а "номер" рассматриваемого ряда на 1 (ряды младших и старших разрядов чередуются).
Код:
1 2 3 4 5 6 7 8 9 10 - k
1 0 1 1 1 2 1 3 1 4  - сам ряд
1   2   3   4   5    - нумерация старших разрядов
  1   2   3   4   5  - нумерация младших разрядов
Поэтому сразу берем k / 2. Но пока это не похоже на нужную цифру. Можно заметить, что старшие разряды только возрастают каждые 10 номеров, то есть k / 2 / 10. Ну и чтобы была все-таки верная цифра, прибавляем единицу: k / 20 + 1.
Младшие разряды каждые 10 номеров начинаются сначала: (k / 2) % 10. Но так получится цифра на единицу больше (или ноль, если верный ответ 9). Итог: (k / 2 - 1) % 10.
Посоветовать особо нечего. Пожалуй, больше практики, но и теорию не запускать
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 31.03.2016, 03:30   #18
zagonicb
Пользователь
 
Регистрация: 30.03.2016
Сообщений: 14
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
а) Во-первых, деление целочисленное, так что никаких 2.5
Во-вторых, рассуждения примерно такие: k изменяется каждую цифру ряда, а номер пары каждые 2 цифры ряда. Попробуем k / 2. Получается не совсем верно (номер пары меняется не на границе пар, а между цифрами одной пары). Тогда перенумеруем цифры с нуля (так правда удобнее). (k - 1) / 2 - стало лучше, но теперь пары с нуля нумеруются, а нужно с единицы. Итог: (k - 1) / 2 + 1.
Доброй ночи) я понял ход ваших мыслей, все логично. Но извините за назойливость. Да, деление целочисленное, в js есть деление с остатком "/", так же есть взятие остатка от деление "%", думаю вы и так это знаете) И что бы получить целочисленное деление достаточно приписать побитовый оператор "^ 0", либо округлить вниз "Math.floor" либо вверх "Math.ceil". Но суть в том, что начиная с k = 2 и k = 3, при целочисленном деление пары нумеруются с 1, 2, я с этим согласен, но при k = 4 в вашей формуле номер пары будет находится на 11, т.е. 2-11. При деление с остатком будет 2.5 получается будет находится между 11-12 пары, но нам нужно целочисленное деление. В мысли только приходит условный оператор т.е. если есть остаток то нужно прибавить еще 0.5. Но задача не требует условного оператора)) Надеюсь я все корректно изложил
|| запинается на «правде», && запинается на «лжи».
zagonicb вне форума Ответить с цитированием
Старый 31.03.2016, 05:08   #19
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Не уверен, что до конца понял вопрос. В js для правильного результата подойдет Math.floor((k - 1) / 2 + 1).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 31.03.2016, 14:50   #20
zagonicb
Пользователь
 
Регистрация: 30.03.2016
Сообщений: 14
Радость

Ну вот другое дело,
Код HTML:
 Math.ceil((k - 1) / 2 + 1 + 0.5
идеально вписывается)
б) По вашей формуле подходит.
в) Не совсем разобрался, что вы хотели сказать. Но как я понял тут просто остаток от деления нужно найти, чтоб определить k четное число или нечетное. Думаю прсто подойдет k % 2.
Итого:
Код HTML:
var k = 5;
var a, b;
	a = Math.ceil((k - 1) / 2 + 1 + 0.5);
console.log("Номер пары  = " + a);
	b = a + 9;
console.log(k + " входит в " + b);
	if (k % 2 == 0){
		console.log(k + " четное число");
	}
	else{
		console.log(k + " нечетное число");
	}
Надеюсь правильно
|| запинается на «правде», && запинается на «лжи».

Последний раз редактировалось zagonicb; 31.03.2016 в 23:46.
zagonicb вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
целочисленная арифметика 6.5 Darkin Общие вопросы C/C++ 2 18.02.2013 14:32
Си++ Целочисленная арифметика Krieger Помощь студентам 0 15.10.2011 22:40
целочисленная арифметика Алиса_а Помощь студентам 4 06.07.2011 14:14
Целочисленная арифметика Natochka Помощь студентам 5 12.04.2011 19:48
Целочисленная арифметика Doublefaced Помощь студентам 11 22.03.2009 19:33