Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

помогите срочно! ! как в C++ проверить на кратность, но использование %==0 не подойдет :(

-^.^- Профи (552), закрыт 8 лет назад
Дополнен 13 лет назад
т. е. можно найти, к примеру число кратное 3.. вот так: b%3==0...мне, же нужно другим способом, что бы не с нулем и не с числом равным 0, тк в дальнейшем это будет и для int и для float использоваться..
Дополнен 13 лет назад
блин возможно есть какая то операция, мне нужно обойти сравнения с 0, тк в 1-м массиве мне нужно будет сравнивать с 0, а в другом с 0.0
Лучший ответ
Остальные ответы
Igor K. Мастер (1612) 13 лет назад
if(a/b*b==a)..

это что получается если мы хотим 5 проверяем кратность 2 то
получаем что оно кратное? Оо

5/2*2 =5

WTF?

А что если по циклу вычетать из исходного числа нужное нам (на кратность которому проверяем) и после вычитания смотрим если результат равен 0 то краное, если результат меньше 0 то некратное, если больше нуля то снова вычитаем и снова проверяем

например (проверяем число 15 кратности 3)
15-3=12 (больше нуля)
12-3=9 (больше нуля)
9-3=6(больше нуля)
6-3=3(больше нуля)
3-3=0 (Краное)

число 7 кратности 2
7-2=5(больше 0)
5-2=3(больше нуля)
3-2=1(больше нуля)
1-2=-1(меньше нуля значит не кратно)

Алексей Цаплев Мастер (1750) 13 лет назад
Проверка кратности это по любому работа с целым числом. На кратность ведь проверяют только целые числа. А если надо эту опреацию проводит с переменной типа float, то для таких дел в Си есть операция "приведения типов".
Примерно так:

float b;
...
if ( (int)b % 3) {...}

То есть мы переменную b привели к целому типу и выполнили над уже целым значением целочисленную операцию. Сама переменная никак не изменилась
Похожие вопросы