Программисты-информатики, нужна помощь! из некого числа вычли сумму его же цифр, после...

0 голосов
148 просмотров

Программисты-информатики, нужна помощь! из некого числа вычли сумму его же цифр, после чего из результата снова вычли сумму его цифр и так далее. через сколько таких действий получится 0? при написании программы нужно использовать процедуру.


Информатика (48 баллов)
оставил комментарий Одаренный (1.6k баллов)

Какие ограничения на количество цифр в числе?

оставил комментарий (48 баллов)

ну, допустим, три? не указано в задании, извиняюсь

оставил комментарий Одаренный (1.6k баллов)

Это важно, поскольку максимальное значение определяет тип данных, с которым работает программа

оставил комментарий Одаренный (1.6k баллов)

А еще хорошо бы язык программирования указать, верно же?

оставил комментарий (48 баллов)

да-да, верно, Паскаль

оставил комментарий Одаренный (1.6k баллов)

Уже хорошо. Значит, значение числа можно ограничить 2.1 миллиарда.

Дан 1 ответ
0 голосов
Одаренный (1.6k баллов)

===== PascalABC.NET =====

function СуммаЦифр(Число: integer): integer;

begin

 Result := 0;

 while Число > 0 do

 begin

   Result += Число mod 10;

   Число := Число div 10

 end

end;

procedure ЧислоДействий(Число: integer; var Действий: integer);

begin

 Число := Abs(Число); // вдруг кто-то задал отрицательное?

 Действий := 0;

 while Число > 0 do

 begin

   Число -= СуммаЦифр(Число);

   Inc(Действий)

 end;

 if Число <> 0 then // невозможно получить 0

   Действий := -1

end;

begin

 var Число := ReadInteger('Введите число:');

 var СделаноДействий := 0;

 ЧислоДействий(Число, СделаноДействий);

 if СделаноДействий >= 0 then

   Print('Сделано действий:', СделаноДействий)

 else

   Print('Невозможно получить ноль')

end.


image
оставил комментарий Отличник (5.5k баллов)

Я просто не имею понятий, что будет в колонне Информатика + Количество часов, на примере там пишется NULL, у меня там вообще ничего нет, и вот какой на это вывод :/

оставил комментарий Одаренный (1.6k баллов)

Какая-то каша. Информатика + Количество часов - так не бывает. Первое - содержимое записи в поле "Предмет", второе - наименование поля в таблице.

оставил комментарий Одаренный (1.6k баллов)

Не предмет, дисциплина.

оставил комментарий Одаренный (1.6k баллов)

Дисциплина - это ключевое поле.

оставил комментарий Одаренный (1.6k баллов)

Если по нему соединить, для Информатики будет Семенов А.А. 120

оставил комментарий Одаренный (1.6k баллов)

Т.е. содержимое колонок, где ключ одинаков - в этом смысл inner join

оставил комментарий Отличник (5.5k баллов)

Всё, до меня дошло, спасибо за консультацию

оставил комментарий Одаренный (1.6k баллов)

Мы как бы объединяем таблицы, вычеркивая дубликаты колонок, но при этом в строке содержимое вычеркнутой колонки и оставленной должно совпадать

оставил комментарий Одаренный (1.6k баллов)

NULL бывает только если в одном из полей объединения inner join было исходное пустое значение. А так NULL - это во внешних объединениях

оставил комментарий Одаренный (1.6k баллов)

У Вас T6 - это как бы справочник для Т5.

...