![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Стоит такая задача обратить вводимое число "А" (более правильной формулировки я не нашел) в число "B". "А" это всегда число образованное из 1/B, т.е. А = 1/B.
Задачу нельзя решить в лоб, если, например, взять B == 200, то (A = 1/200) == 0,005. Но поскольку всегда вводится А (т.е. подразумевается, что для получения 200 вводится не число 0.005, а 0.02) то B понятно что пользователь введя 0.02 получит вместо ожидаемого числа 1/0.02 == 50. Если я только запутал данным объяснением свой вопрос, то в сущности мне нужно добиться результата описанного в теме сообщения, то есть из 5 тысячных получить 5 тысяч, а из 2 сотых получить 200 и т.д. Это сообщение отредактировал(а) Royan - 18.10.2004, 21:25 -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 3 Всего: 172 |
-------------------- |
|||
|
||||
| manu |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 14.10.2004 Репутация: 2 Всего: 3 |
Можно короче:
int p,q; ... q=0; while(p) { q=q*10+p%10; p/=10; } Добавлено @ 21:24 будет работать только для нуля :-! int x, k = 0; cin >> x; while (x < 1) { k++; x*=10;} // не выполнится не разу при x>0 while (k > 1) {x*=10; k--;} // выполнится один раз, если x==0 и ни разу если x>0 Добавлено @ 21:29
А что тебе нужно, я так и не понял... |
|||
|
||||
| Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 3 Всего: 172 |
Насколько я понял нужно для x < 1. Ну, добавить модуль для отрицательных чисел и случаи если |х| > 1.
А это вообще не заработает. Это сообщение отредактировал(а) Domestic Cat - 18.10.2004, 21:40 -------------------- |
||||
|
|||||
| manu |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 14.10.2004 Репутация: 2 Всего: 3 |
Не, надо поменять int x на double x. Добавлено @ 22:17
А почему? Случай для дробей: double p,q; ... q=p; while(p<1) { q=q*100; p*=10; } |
||||||||
|
|||||||||
| Adil' |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 26.8.2004 Где: Питер Репутация: 6 Всего: 15 |
А может так будет по-проще?
Это сообщение отредактировал(а) Adil' - 19.10.2004, 10:07 -------------------- Удачи |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 3 Всего: 172 |
Согласен, думал о double, написал int. -------------------- |
|||
|
||||
| manu |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 14.10.2004 Репутация: 2 Всего: 3 |
Domestic Cat, а я посмотрел на твой код, и решил что речь идет о целых
|
|||
|
||||
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Всем спасибо!
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |