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

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

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

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.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Пока вы совсем не запутались, третья задача, читать внимательно
Некий астролог определяет счастливые и нечаствливые дни так: он вписывает подряд число, номер месяца и год рождения. В получившемся числе складывает цифры, у вновь получившегося числа внось складывает все цифры и т.д., пока очередная сумма цифр не станет однозначным числом. Это число и характеризует "счастливость дня". Напишите программу определяющую по дате ее "счастиловость".
airyashov, y = d+m+y - это разве сумма цифр, входящих в дату?
It's a long way to the top if you wanna rock'n'roll
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

Relrin писал(а):В 3ей...Я сначало должен сложить...1995+5+2=2002...После надо щемить эти 2ки...Ток вот как?
основываясь на этом думаю именно так
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Тогда понятно :-) Хозяин - барин...
It's a long way to the top if you wanna rock'n'roll
Vovchik
Сообщения: 196
Зарегистрирован: 28 фев 2008, 18:32
Контактная информация:

airyashov писал(а):подъезд=n / (9*4)+1
тока есть одно но если ввести 36 выводит 2,а должно выводить 1 !!!
"....+1" надо убрать тогда всё в порядке !!!!!
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

тогда всеж через условие нужно
подъезд=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(этаж)
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

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


а по поводу счастливого числа полность согласен с Хыиуду
и его решением в посту #10 (написано - сложить ВСЕ ЦИФРЫ, на не числа...
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Relrin писал(а):как избавиться от ошибки...в паскале..Жалуется что неизв. индефикатор inttostr...
Ага, это функция из Дельфи, которая переводит число в строку. Надо только написать ее на Паскале. Процедура str тебе поможет
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить