Страница 1 из 3

Помогите с задачами!

Добавлено: 26 мар 2008, 10:34
Relrin
Нужна помощь по задачам:

1) Определить номера подъезда и этажа по номеру квартиры девятиэтажного дома, считая, что на каждом этаже ровно 4 квартиры, а нумерация квартир начинается с первого подъезда.

2) Пусть бактерии могут быть двух цветов: зеленые и красные. Красная бактерия за один такт времени меняет цвет на зеленый. Зеленая бактерия за один такт времени делится на две бактерии: красную и зеленую. Сколько всего бактерий (красных и зеленых вместе) будет через K тактов времени, если, если сначало было N бактерий красного цвета.

3) Некий астролог определяет счастливые и нечаствливые дни так: он вписывает подряд число, номер месяца и год рождения. В получившемся числе складывает цифры, у вновь получившегося числа внось складывает все цифры и т.д., пока очередная сумма цифр не станет однозначным числом. Это число и характеризует "счастливость дня". Напишите программу определяющую по дате ее "счастиловость".
Пример. Ввод: день рождения: 05
номер месяца: 02
год рождения: 1995
Вывод: Счастиливый день - 4.

Ребята! Помогите! Оч сильно нужна ваша помощь...

Re: Помогите с задачами!

Добавлено: 26 мар 2008, 10:40
airyashov
подъезд=n / (9*4)+1
этаж=(n-n / (9*4)*(9*4))/4+1

Re: Помогите с задачами!

Добавлено: 26 мар 2008, 11:03
Relrin
airyashov писал(а):подъезд=n / (9*4)+1
этаж=(n-n / (9*4)*(9*4))/4+1
За n что ты брал? Номер квартиры грубо говоря? :)

Со 2ой задачей я чутка разобрался...но с делением проблемы...Пока что написано ко 2ой:
begin
writeln('vvedite kol-vo taktov ');
readln(k);
writeln('vvedite chislo krasnih bakterii');
readln(n);
s:=0;
For i:=1 to k do
begin
zel:=n;
s:=s+t;
t:=zel*i*2
i:=i+1;
end;
writeln(s);
readln;
end.

Только самое сложное это в цикле фор...Я намудрил...Часть подсчетов он делает правильно, другую - нет.

Re: Помогите с задачами!

Добавлено: 26 мар 2008, 11:05
somewhere
2) Классический ряд Фибоначчи, общее число бактерий = N * Число_Фибоначчи(К)

Re: Помогите с задачами!

Добавлено: 26 мар 2008, 11:14
Relrin
somewhere писал(а):2) Классический ряд Фибоначчи, общее число бактерий = N * Число_Фибоначчи(К)
Т.е. так должно, учитываю что к примеру 2 бактерии: 2*6? (6- кол-во тактов)

Re: Помогите с задачами!

Добавлено: 26 мар 2008, 11:16
Relrin
airyashov писал(а):подъезд=n / (9*4)+1
этаж=(n-n / (9*4)*(9*4))/4+1
Что то не сходится. Какое-бы я число не вводил всегда 1ый этаж.... :(

Re: Помогите с задачами!

Добавлено: 26 мар 2008, 11:18
somewhere
Я кажется понятно написал? Повторюсь, эта зависимость от ряда Фибоначчи, общее число бактерий = N * Число_Фибоначчи(К)

Re: Помогите с задачами!

Добавлено: 26 мар 2008, 11:19
airyashov
n-номер квартиры

3. числа в строку и гонять строку пока длина не 1
str:=inttostr(day+mounth+year);
do
str:=Summa(str);
while (len(str)<>1)


Summa()
s=0;
for i=1 to len(str) do
s=s+val(str);
next i
return inttostr(s);

в общих чертах

Re: Помогите с задачами!

Добавлено: 26 мар 2008, 11:20
Relrin
В 3ей...Я сначало должен сложить...1995+5+2=2002...После надо щемить эти 2ки...Ток вот как?

Re: Помогите с задачами!

Добавлено: 26 мар 2008, 11:21
Хыиуду
Счастливость (рекурсивно)

Код: Выделить всё

function happy(s:string): integer;
var sum, i: integer;
begin
  if length(s)=1 then 
     begin happy:=ord(s[1])-ord('0'); exit; end;
  sum:=0;
  for i:=1 to length(s) do
    sum:=sum+ord(s[i])-ord('0');
  happy:=happy(inttostr(sum));
end;