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

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

Добавлено: 26 мар 2008, 14:04
airyashov

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

program magic;

var d,m,y:longint;
    s:string;

function Sum(s:string):String;
var Summa:longint;
    i,ch,code:integer;
    ss:string;
begin
     Summa:=0;
     for i:=1 to length(s) do
       begin
         Val(s[i],ch,code);
         Summa:=Summa+ch;
       end;
     Str(Summa,ss);
     Sum:=ss;
end;

begin
     read(d,m,y);
     y:=d+m+y;
     Str(y,s);

     while (Length(s)>1) do
       begin
            s:=Sum(s);
       end;
     writeln(s);
end.

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

Добавлено: 26 мар 2008, 14:12
somewhere
Пока вы совсем не запутались, третья задача, читать внимательно
Некий астролог определяет счастливые и нечаствливые дни так: он вписывает подряд число, номер месяца и год рождения. В получившемся числе складывает цифры, у вновь получившегося числа внось складывает все цифры и т.д., пока очередная сумма цифр не станет однозначным числом. Это число и характеризует "счастливость дня". Напишите программу определяющую по дате ее "счастиловость".
airyashov, y = d+m+y - это разве сумма цифр, входящих в дату?

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

Добавлено: 26 мар 2008, 14:27
airyashov
Relrin писал(а):В 3ей...Я сначало должен сложить...1995+5+2=2002...После надо щемить эти 2ки...Ток вот как?
основываясь на этом думаю именно так

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

Добавлено: 26 мар 2008, 14:32
somewhere
Тогда понятно :-) Хозяин - барин...

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

Добавлено: 26 мар 2008, 19:44
Vovchik
airyashov писал(а):подъезд=n / (9*4)+1
тока есть одно но если ввести 36 выводит 2,а должно выводить 1 !!!
"....+1" надо убрать тогда всё в порядке !!!!!

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

Добавлено: 26 мар 2008, 21:36
airyashov
тогда всеж через условие нужно
подъезд=n/(9*4)+1
if (n mod (9*4))=0 then dec(подъезд)
этаж=(n-36*(подъезд-1))/4+1
if ((n-36*(подъезд-1)) mod 4)=0 then dec(этаж)

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

Добавлено: 27 мар 2008, 00:04
Serge_Bliznykov
или я чего-то не понимаю, либо одно из двух...
первая задача с номером квартиры вроде решается без всяких if
подъезд := (trunc((n-1)/36))+1;
этаж := Trunc(((n-1) mod 36)/4)+1;


а по поводу счастливого числа полность согласен с Хыиуду
и его решением в посту #10 (написано - сложить ВСЕ ЦИФРЫ, на не числа...

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

Добавлено: 27 мар 2008, 11:46
Хыиуду
Relrin писал(а):как избавиться от ошибки...в паскале..Жалуется что неизв. индефикатор inttostr...
Ага, это функция из Дельфи, которая переводит число в строку. Надо только написать ее на Паскале. Процедура str тебе поможет