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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2010, 09:55   #11
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
var a:array[1..999] of integer;
     i,j:integer;
k:integer;

function SD(n:integer):integer;
var s:integer;
begin
s:=0;
while n<>0 do begin
s:=s+n mod 10;
n:=n div 10;
end;
sd:=s;
end;
begin
k:=0;
i:=1;
while i<=999 do begin
a[i]:=sd(i);
inc(i);
end;
while i>=1 do begin
j:=1;
while j<=999 do begin
if a[i]=a[j] then  inc(k);
inc(j);
end;
dec(i);
end;
writeln('kol=',k);
readln;
end.

Последний раз редактировалось Google2010; 30.03.2010 в 09:57.
Google2010 вне форума Ответить с цитированием
Старый 01.04.2010, 20:58   #12
Dj_Leff
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от noxin Посмотреть сообщение
Попробуй так

Код:
program sexytime;
uses crt;
var i, j, k, a, b, c, s:word;
begin
s:=0;
i:=0;
j:=0;
k:=0;
a:=0;
b:=0;
c:=0;
while i<=9 do
begin
 while j<=9 do
 begin
  while k<=9 do
  begin
   while a<=9 do
   begin
     while b<=9 do
     begin
       while c<=9 do
       begin
        if i+j+k=a+b+c then 
        begin
        s:=s+1;
        end;
       c:=c+1;
       end; 
     b:=b+1;
     end; 
   a:=a+1;
   end; 
  k:=k+1;
  end; 
 j:=j+1;
 end; 
i:=i+1;
end;
writeln('Kol=',s);
end.
Не в том порядке увеличивались переменные While
Результат: Kol=1, цикл сработал, но один раз, как сделать чтоб счетчик s "набирал обороты"?

ЗЫ Может я конечно ошибаюсь, но может в данном случае спасет метка?

Последний раз редактировалось Dj_Leff; 01.04.2010 в 21:04.
Dj_Leff вне форума Ответить с цитированием
Старый 01.04.2010, 21:00   #13
Dj_Leff
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Google2010 Посмотреть сообщение
Код:
var a:array[1..999] of integer;
     i,j:integer;
k:integer;

function SD(n:integer):integer;
var s:integer;
begin
s:=0;
while n<>0 do begin
s:=s+n mod 10;
n:=n div 10;
end;
sd:=s;
end;
begin
k:=0;
i:=1;
while i<=999 do begin
a[i]:=sd(i);
inc(i);
end;
while i>=1 do begin
j:=1;
while j<=999 do begin
if a[i]=a[j] then  inc(k);
inc(j);
end;
dec(i);
end;
writeln('kol=',k);
readln;
end.
Спасибо конечно огромное, но нам в универе только-только начали преподавать паскаль, и я думаю что я сам бы не смог реализовать через массив. Все должно быть на детсадовском уровне=) Все равно спасибо!

ЗЫ Результат Kol=-10285
ЗЫЫ Решается заменой integer на word

Последний раз редактировалось Dj_Leff; 01.04.2010 в 22:44.
Dj_Leff вне форума Ответить с цитированием
Старый 01.04.2010, 21:18   #14
D61C76h
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 24
По умолчанию

Проблема заключалась в том что при входе во внутренние циклы переменная цикла принимала значение 9 и в последующие разы зайти в цикл невозможно. Вот исправленный код:
Код:
var i,j,k,a,b,c, s:Integer;
begin
s:=0;
i:=0;
while i<=9 do
begin
 j:=0;
 while j<=9 do
 begin
  k:=0;
  while k<=9 do
  begin
   a:=0;
   while a<=9 do
   begin
    b:=0;
     while b<=9 do
     begin
      c:=0;
       while c<=9 do
       begin
        if i+j+k=a+b+c then
        begin
        s:=s+1;
        end;
       c:=c+1;
       end;
     b:=b+1;
     end;
   a:=a+1;
   end;
  k:=k+1;
  end;
 j:=j+1;
 end;
i:=i+1;
end;
writeln('Kol=',s);
Readln;
end.
D61C76h вне форума Ответить с цитированием
Старый 01.04.2010, 22:38   #15
Dj_Leff
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от D61C76h Посмотреть сообщение
Проблема заключалась в том что при входе во внутренние циклы переменная цикла принимала значение 9 и в последующие разы зайти в цикл невозможно. Вот исправленный код:
Код:
var i,j,k,a,b,c, s:Integer;
begin
s:=0;
i:=0;
while i<=9 do
begin
 j:=0;
 while j<=9 do
 begin
  k:=0;
  while k<=9 do
  begin
   a:=0;
   while a<=9 do
   begin
    b:=0;
     while b<=9 do
     begin
      c:=0;
       while c<=9 do
       begin
        if i+j+k=a+b+c then
        begin
        s:=s+1;
        end;
       c:=c+1;
       end;
     b:=b+1;
     end;
   a:=a+1;
   end;
  k:=k+1;
  end;
 j:=j+1;
 end;
i:=i+1;
end;
writeln('Kol=',s);
Readln;
end.
Яхуу!!! Спасибо мен!! Ты настоящий мозг
Сначала я расстроился, т.к. результат был -10284, но потом integer заменил на word, и вот он заветный ответ!!! S=55252 !!!

Вопрос решен! Топ можно закрыть
Dj_Leff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Билеты (Delphi) fast09 Помощь студентам 4 15.11.2009 08:33
Рекурсия. Счастливые билеты. k1r1ch Паскаль, Turbo Pascal, PascalABC.NET 4 21.10.2009 18:47
экзаменационные билеты!!! rodger Свободное общение 6 06.05.2009 09:05
счастливые числа и полиндромы помогите!!! starlet Помощь студентам 2 16.03.2009 09:23