Задачка по информатике :)

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Dex
Постоялец
Постоялец
 
Сообщения: 346
Зарегистрирован: 09.08.2004 (Пн) 16:11

Задачка по информатике :)

Сообщение Dex » 12.03.2006 (Вс) 14:04

Помогите решить такую задачу:
Даны два целых числа A и B (0<A, B<10^100). Напишите программу, вычисляющую результат деления двух чисел, с точностью до двух знаков после запятой.
Сразу хочу заверить, что это прога не такая простая как кажется, простым
Код: Выделить всё
round(A/B,2)
здесь не обойдётся. Так как 10^100 большое число то нужно реализовать работу с массивами, потом сделать два цикла и вычитать что-то из чего-то... Я так и не понял. Помогите решить. :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.03.2006 (Вс) 14:10

Вспоминай школу и деление в столбик.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.03.2006 (Вс) 14:12

Гы :)
Код: Выделить всё
Function DivideAB(A, B) As Single
  DivideAB = "0.00"
End Function
Lasciate ogni speranza, voi ch'entrate.

Dex
Постоялец
Постоялец
 
Сообщения: 346
Зарегистрирован: 09.08.2004 (Пн) 16:11

Сообщение Dex » 12.03.2006 (Вс) 14:19

Я забыл упоменуть что мне нужно это програмно :) Или всё таки не забыл?
А в столбик это как? так?:
Код: Выделить всё
                               Задача №8
  3     | 2
- 2     |-----
  ----  |1
  1
Ответ: 1.5
:)
Ну тока проблема, что так работает тока на бумаге, а basic не хочет понимать такой синтаксис... :)
А если серьёзно? Как решить?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.03.2006 (Вс) 14:27

Не совсем так.
Когда деления на цело не получается, дописывается ноль и вычисления продолжаются дальше. Когда добавляемый разряд превышает разряд делимого, то ставиться десятичная точка.
Lasciate ogni speranza, voi ch'entrate.

Dex
Постоялец
Постоялец
 
Сообщения: 346
Зарегистрирован: 09.08.2004 (Пн) 16:11

Сообщение Dex » 12.03.2006 (Вс) 14:30

Ну да ладно все поняли... просто не стал расписывать :) Ну а серьёзно помочь не можешь? (я знаю что ты опять ответишь не то...кхм)
ЗЫ 300-ый пост :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.03.2006 (Вс) 16:27

Посмотри, например, этот калькулятор.
Вложения
CosmoCount.zip
Калькулятор
(9.08 Кб) Скачиваний: 43
Lasciate ogni speranza, voi ch'entrate.

Dex
Постоялец
Постоялец
 
Сообщения: 346
Зарегистрирован: 09.08.2004 (Пн) 16:11

Сообщение Dex » 12.03.2006 (Вс) 17:39

Ахаха! А калькулятор та бажный :) Не смог даже разделить:
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 на 546. Хе! :)
А по существу ничего нет к решению моей проблемы?

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 13.03.2006 (Пн) 13:44

Ну почему ж нет? Надо организовать механизм, как деление в столбик. Здесь понадобятся массивы, храня в них эти числа и промежуточные вычисления. А дальше циклом их, циклом!

Кстати, 10^100 называется гугол.
[Место cдаётся]

Dex
Постоялец
Постоялец
 
Сообщения: 346
Зарегистрирован: 09.08.2004 (Пн) 16:11

Сообщение Dex » 13.03.2006 (Пн) 13:55

Так как 10^100 большое число то нужно реализовать работу с массивами, потом сделать два цикла и вычитать что-то из чего-то... Я так и не понял. Помогите решить.


Надо организовать механизм, как деление в столбик. Здесь понадобятся массивы, храня в них эти числа и промежуточные вычисления. А дальше циклом их, циклом!

Всё теперь въехал :)

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Re: Задачка по информатике :)

Сообщение Sasha_karasov » 19.03.2006 (Вс) 3:14

Dex писал(а):Помогите решить такую задачу:
Даны два целых числа A и B (0<A, B<10^100). Напишите программу, вычисляющую результат деления двух чисел, с точностью до двух знаков после запятой.
Сразу хочу заверить, что это прога не такая простая как кажется, простым
Код: Выделить всё
round(A/B,2)
здесь не обойдётся. Так как 10^100 большое число то нужно реализовать работу с массивами, потом сделать два цикла и вычитать что-то из чего-то... Я так и не понял. Помогите решить. :)
Это такие задачки в простой школе? А мы рисуем из "*" всякую ерунду, и еще пишем тесты. Вот и все программирование!
Да не плохо учат в России! Кстати кто знает какие места занимает Россия на международных олимпиадах по программирования?
Просто нам говорили из ДНУ что Россия уступила Украине, мне почему-то не верится !
Удачи!
С уважением, Алексадр.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 20.03.2006 (Пн) 10:45

МГУшники в прошлом году заняли второе место на всемирной олимпиаде. Один из участников этой команды (из моей школы, кстати :) ) сейчас третий на топкодере (http://www.topcoder.com/tc?module=MemberProfile&cr=10574855&tab=alg), периодически вылезает на первое место.

Кстати, если я не ошибаюсь, "длинная" арифметика часто используется в олимпиадных задачах.
Быть... или не быть. Вот. В чём вопрос?

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 20.03.2006 (Пн) 20:51

Кстати, если я не ошибаюсь, "длинная" арифметика часто используется в олимпиадных задачах.

Угу на двох олимпиадах подряд на которых я был, были задания где нужна юзать долгую арифметику. Кстати на второй было похожое задание, а именно перевести число 10^10 до 10^100, в двоичную систему.
الفيجوال بيسك الرابح

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 26.03.2006 (Вс) 14:28

У нас тоже, только нужно было найти Log числа b.
А кто первые места берет на всемирных и где они проводятся ?
Удачи!
С уважением, Алексадр.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 26.03.2006 (Вс) 14:31

Dex, задачку-то решил?
Изображение

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 27.03.2006 (Пн) 10:22

Насколько я помню, последняя олимпиада проводилась в Китае и выиграли ее тоже китайцы.
Быть... или не быть. Вот. В чём вопрос?

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 27.03.2006 (Пн) 10:59

Ну так, ясен пень! Распределенные вычисления миллиарда юзеров - это сила :D
Моду создают модоки, а распространяют модозвоны.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 27.03.2006 (Пн) 11:07

:) Там команды ограничены по количеству участников. И ограничение сильно меньше миллиарда.
Быть... или не быть. Вот. В чём вопрос?

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 02.04.2006 (Вс) 5:02

uhm писал(а):Насколько я помню, последняя олимпиада проводилась в Китае и выиграли ее тоже китайцы.

Жаль что не наши :(
Удачи!
С уважением, Алексадр.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 140

    TopList