Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2013, 15:18   #1
julian97
 
Регистрация: 01.12.2013
Сообщений: 9
По умолчанию задача с цыклом

Программист и математик ездят в сказочном троллейбусе , в котором номера билетов - пятизначные числа. Покупая билет , они всегда проверяют "счастливый" у него номер или " нет". Для этого они выполняют такие математические вычисления:
• Вычисляют сумму квадратов цифр числа .
• Затем повторяют операцию для полученного результата.
• И делают это пока результат не окажется равным единице , или вычисления не попадут в бесконечный цикл . Если операция закончилась на единицы , то номер счастлив.
Входной файл INPUT.TXT содержит несколько чисел - номера билетов ( по одному в строке). В выходной файл OUTPUT.TXT для каждого билета нужно вывести HAPPY , если билет счастливый , или SAD - в противном случае
julian97 вне форума Ответить с цитированием
Старый 01.12.2013, 15:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
или вычисления не попадут в бесконечный цикл
Это кто придумал? Назови препода и выложи его фотку на демотиватор. Страна должна знать своих hero-ев.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2013, 15:39   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Это кто придумал?
Ты не прав.. Такое может быть..
1+1+1+1+1= 5
5^2 = 25
4+25 = 29
4+81 = 85
64+25 = 89
64+81 = 145
1+16+25 = 42
16+4=20
4+0 = 4
16 = 16
1+36 = 37
9+49 = 58

Здрасте, бесконечный цикл..

Вот есть ссылки (но для 4-х чисел..)тыц
тыц

Последний раз редактировалось Poma][a; 01.12.2013 в 15:43.
Poma][a вне форума Ответить с цитированием
Старый 01.12.2013, 15:59   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
julian97
Еще раз кросспост заделаешь - отправлю в бан.
Цитата:
Такое может быть..
У бесконечного цикла нет условий, а значит нельзя определить что этот цикл бесконечен.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2013, 16:22   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
В программировании бесконечным циклом называется цикл, написанный таким образом, что условие выхода из него никогда не выполняется.
Таким образом можно определить, что цикл бесконечен..
Poma][a вне форума Ответить с цитированием
Старый 01.12.2013, 16:37   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Допустим. а как программа определит что условие уже стало "бесконечным"?
Человек, то предположить может, а компьютер?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2013, 16:39   #7
julian97
 
Регистрация: 01.12.2013
Сообщений: 9
По умолчанию

у меня получилось сделать только если цыкл 2 раза проходит, что сдесь не так

program kvitok;

var i,f,l,k,h,g:longint;

function roskl(n:longint):longint;
var a,b,c,d,e,s:longint;
begin
a:=n div 10000;
b:=n div 1000 mod 10;
c:=n div 100 mod 10;
d:=n div 10 mod 10;
e:=n mod 10;
s:=a*a+b*b+c*c+d*d+e*e;
roskl:=s;end;
function ch(k:integer):integer;
var h:integer;
begin
case k of
1..9:h:=1;
10..99:h:=2;
100..999:h:=3;
1000..9999:h:=4;
else h:=5;end;
ch:=h;
end;
begin
read(g);
k:=roskl(g);
l:=ch(k);
for i:=1 to h do begin
f:=roskl(l);
end;
write(f);
end.
julian97 вне форума Ответить с цитированием
Старый 01.12.2013, 16:49   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Stilet, как только встретим уже встреченный набор цифр (или само число, так как одинаковый набор цифр дает одинаковое число), то попали в цикл.
julian97, во-первых, а если число будет 6тизначное? Во-вторых, интересное условие конца цикла.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 01.12.2013, 16:51   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
julian97, во-первых, а если число будет 6тизначное?
Цитата:
в котором номера билетов - пятизначные числа
И наибольшее будет 99999 = 81*5 = 405.. так что не будет..
Poma][a вне форума Ответить с цитированием
Старый 01.12.2013, 16:52   #10
julian97
 
Регистрация: 01.12.2013
Сообщений: 9
По умолчанию

в условии 5 значное
julian97 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задание с цыклом for(очень простое для новичка) формулу не могу подобрать( dykee Помощь студентам 14 03.11.2013 20:40
Программы с цыклом Casillas1 Помощь студентам 1 28.05.2013 11:56
траблы с цыклом repeat bulldog5293 Общие вопросы Delphi 12 23.02.2011 22:26
Простая прога с цыклом на с++ Olya90 Помощь студентам 5 11.04.2009 19:31
Помогите с Цыклом Dzib Помощь студентам 4 24.10.2008 16:39