Числа+белки - Форум
Воскресенье, 04.12.2016, 04:49
Задачи по информатике
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ignorer, KOT_B_MEIIIKE, PASCAL26, atvrider 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » Числа+белки
Числа+белки
nik274Дата: Четверг, 22.05.2008, 17:52 | Сообщение # 1
Сержант
Группа: Новичок
Сообщений: 6
[ 0 ]
Статус: Offline
Помогите решить. у меня не получается

26. Даны два К-значных числа. Цифры чисел пронумерованы, цифра единиц имеет номер 0. Значение i-й цифры 1 числа - ЦАi, i-й цифры 2 числа - ЦВi. Выдать значения цифр произведения этих чисел (начиная с единиц).

Полная запись численного примера.

Даны два 3-значных числа.
Цифры чисел пронумерованы, цифра единиц имеет номер 0.
Значение 1-й цифры 1 числа - 1, 1-й цифры 2 числа - 2.
Значение 2-й цифры 1 числа - 2, 2-й цифры 2 числа - 4.
Значение 3-й цифры 1 числа - 1, 3-й цифры 2 числа - 3.
Выдать значения цифр произведения этих чисел (начиная с единиц).

Краткая запись численного примера.
К=3
i=1
ЦА(0)=1 - значение 1-й цифры 1 числа
ЦВ(0)=0 - значение 1-й цифры 2 числа
i=2
ЦА(1)=2- значение 2-й цифры 1 числа
ЦВ(1)=4- значение 2-й цифры 2 числа
i=3
ЦА(2)=1- значение 3-й цифры 1 числа
ЦВ(2)=3- значение 3-й цифры 2 числа
Первое число А= 121
Второе число В= 340

C(0)=ЦА(0)*ЦВ(0) 0=1*0
C(1)=ЦА(1)*ЦВ(0) 0=2*0
C(2)=ЦА(2)*ЦВ(0) 0=1*0
msgbox C(2)C(1)C(0)

C(3)=ЦА(1)*ЦВ(2) 4=1*4
C(4)=ЦА(2)*ЦВ(2) 8=2*4
C(5)=ЦА(3)*ЦВ(2) 4=1*4

C(6)=ЦА(1)*ЦВ(3) 3=1*3
C(7)=ЦА(2)*ЦВ(3) 6=2*3
C(8)=ЦА(3)*ЦВ(3) 3=1*3

 
zadachkiДата: Четверг, 22.05.2008, 20:15 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 116
[ 9 ]
Статус: Offline
Небольшое уточнение: то что идет после условия (С(1), С(2), С(3)....) - это то что нужно вывести, или это попытка решить задачу?
Если в задаче имеется ввиду вывести цифры числа, равного произведению двух данных (121*340=41140), то выведено должно быть 04114 (начиная с единиц), а то что означают С(1) и т.д. мне не понятно.
Если вывести нао все таки числа 0,4,1,1,4, то предлагаю найти сами числа:
(число 1 = ЦА(i)*(10^i) , число 2 = ЦВ(i)*(10^i) - это все в цикле конечно)
Затем эти числа перемножить, полученне число разбить по разрядам и вывести цифры, начиная с единиц.
 
nik274Дата: Пятница, 23.05.2008, 11:58 | Сообщение # 3
Сержант
Группа: Новичок
Сообщений: 6
[ 0 ]
Статус: Offline
просто мне нужно срочно решить эту задачу, иначе я вылечу с института. Вот условие, остального не нужно

Даны два К-значных числа. Цифры чисел пронумерованы, цифра единиц имеет номер 0. Значение i-й цифры 1 числа – ЦАi, i-й цифры 2 числа – ЦВi. Выдать значения цифр произведения этих чисел (начиная с единиц).

Добавлено (23.05.2008, 11:36)
---------------------------------------------
огромное спасибо

Добавлено (23.05.2008, 11:58)
---------------------------------------------
и ещё, можете более подробно объяснить? пожалуйста sad

 
zadachkiДата: Пятница, 23.05.2008, 13:08 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 116
[ 9 ]
Статус: Offline
Возможно есть и другие способы решения, но вот мое предложение:
"собираем" число 1:
Число1=0;
цикл от i=0 до k-1
Число1=Число1+ЦА(i)*10^i (10 в степени i)

Аналогично для второго числа (переписать конечно все на нужный язык программирования)
Потом просто Число1*Число2. Это получаем произведение этих двух чисел.
Тепер, например, можно разбить полученное число (proizvedenie) на разряды:

цикл от i=1 до длины произведения
pr(i)=proizvedenie div 10^(i-1); pr(i)=pr(i) mod 10 (mod - остаток от деления, div - деление нацело)

В результате в массиве pr() имеем значение цифр произведения чисел, причем p(1) - это единицы, р(2) - десятки и т.д.

 
nik274Дата: Понедельник, 26.05.2008, 19:51 | Сообщение # 5
Сержант
Группа: Новичок
Сообщений: 6
[ 0 ]
Статус: Offline
Большое спасибо, с задачей я разобрался, только преподаватель попросил её перерешать заново, по Человечески, в столбик. Только как это сделать, я не могу разобраться. sad

Добавлено (26.05.2008, 19:51)
---------------------------------------------
Нужна помощь. У меня не получается решить эту задачу! Если есть такая возможность, помогите пожалуйста. Огромное спасибо!

КБ белок создают запасы на зиму. Каждый день они находят КО орехов. Кроме того, найдя чужие запасы белка крадет половину себе. За сезон (КД дней) произошло КК краж, причем i-я произошла в конце дня № НДi и белка № НВi разорила запасы белки № НЖi. Сколько орехов оказалось у каждой в конце сезона?

 
zadachkiДата: Понедельник, 26.05.2008, 20:00 | Сообщение # 6
Admin
Группа: Администраторы
Сообщений: 116
[ 9 ]
Статус: Offline
То есть он попросил расписать алгоритм умножения в столбик?????

P.S. Совсем не обязательно писать одну и туже задачу в нескольких темах.

 
nik274Дата: Понедельник, 26.05.2008, 20:25 | Сообщение # 7
Сержант
Группа: Новичок
Сообщений: 6
[ 0 ]
Статус: Offline
Да, именно в столбик.

P.S. Извините, больше не буду.

 
zadachkiДата: Понедельник, 26.05.2008, 20:26 | Сообщение # 8
Admin
Группа: Администраторы
Сообщений: 116
[ 9 ]
Статус: Offline
Задача 2:
Если я правильно понял, то белки разделяются на белок-воров (НВi) и белок-жертв(НЖi).
Если так, то алгоритм достаточно прост:

цикл от i=1 до КД (доконца сезона)
НВ[i]=НВ[i]+КО;
НЖ[i]=НЖ[i]+КО; (белки пополняют свои запасы)
Если КК>0, то
НВ[i]=НВ[i]+(НЖ[i]/2);
НЖ[i]=НЖ[i]/2;
KK=KK-1; (вор крадет половину орехов у жертвы, после чего счетчик краж уменьшается)
конец цикла.

 
zadachkiДата: Понедельник, 26.05.2008, 20:48 | Сообщение # 9
Admin
Группа: Администраторы
Сообщений: 116
[ 9 ]
Статус: Offline
Задача 1.
Тогда предлагаю такой алгоритм:
121*241
ЦА(0)=1 ЦВ(0)=1
ЦА(1)=2 ЦВ(1)=4
ЦА(2)=1 ЦВ(2)=2

Цикл от i=1 до K (до длины числа)
__Цикл от n=1 до К
___S(i)=( ЦВ(i)*ЦА(n) ) *10^(n-1) * 10^(i-1)
___{то есть последовательно умножаются цифры (как при умножении вручную в столбик) и
___учитывается разряд числа}
__конец цикла от n=1 до К
Конец цикла от i=1 до K
После этого (можно и внутри прошлого цикла) складываем все S(i).

Минус опять же в том, что складываются числа например 121, 2310 и 23500, после чего число опять прийдется разбивать по разрядам.

 
nik274Дата: Вторник, 27.05.2008, 19:11 | Сообщение # 10
Сержант
Группа: Новичок
Сообщений: 6
[ 0 ]
Статус: Offline
я попытался поработать со второй задачей, но ничего не получилось, программа не работает. sad А с первой, я так и не разобрался.
 
zadachkiДата: Вторник, 27.05.2008, 21:34 | Сообщение # 11
Admin
Группа: Администраторы
Сообщений: 116
[ 9 ]
Статус: Offline
Задача 2 не работает совсем или работает неправильно??
В задаче 1 попробуй пройти выбрать два произвольных числа и пройти по циклу вручную. Тогда все понятно будет.
 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » Числа+белки
Страница 1 из 11
Поиск:

Copyright MyCorp © 2016