Вложенные циклы. Определить количество счастливых билетов - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Родные мои, помогите!!! пожалуйста! нужна программа 1)определите количество счастливых билетов в серии с номерами от 000000 до 999999, билет считается счастливым если сумма трех первых цифр и трех последних цифр равны. 2) составить программу перевода произвольного числа с десятичной системе в любую К-тую систему счисления. заранее спасибо)

Решение задачи: «Вложенные циклы. Определить количество счастливых билетов»

textual
Листинг программы
  Var N:Integer; //Шестизначные числа
      a,b:Integer; //Два трехзначных числа из одного шестизначного
      sum1,sum2,count:Integer; //Сумма цифр первого числа и сумма цифр второго + количество счастливых билетов
 
   Procedure GetSum(a,b:Integer);
     var y: integer;
   begin
      sum1:=0;sum2:=0; //Для верности расчетов
 
 {Получаем первые три цифры из нашего числа}
  repeat
    y := a mod 10;   //Получаем последнюю цифру из нашего числа
    sum1:=sum1+y;    //Узнаем сумму полученных цифр
    a := a div 10;   //Убираем один разряд
  until a = 0;
 
  {Получаем последние 3 цифры из нашего числа}
  repeat
    y := b mod 10;
    sum2:=sum2+y;
    b := b div 10;
  until b = 0;
 
  //writeln(sum1,'  ',sum2);       //Просто для наглядности что происходит, можно убрать коммент
 
end;
 
{Разбиваем наше 6 значное число на 2 трехзначных}
   Procedure Razbienie(K:Integer);
   Begin
     //  writeln;
       a:=K div 1000;      // Получаем первое трехзначное число
       b:=K mod 1000;      // Получаем второе трехзначное число
 
    //  write('a,b = ',a, ' ',b,' '); //Для наглядности. Если надо показать какие числа получили
       getsum(a,b); //Сравниваем суммы цифр полученных чисел
   end;
 
begin
count:=0;       //Количество счастливых билетов
    for N:=100000 to 999999 do Begin
  //  write(N);
       Razbienie(N);  //В каждом новом проходе разбиваем N на 2 трехзнычных числа и выполняем расчет сумм
                      //Процедура расчета вызывается из Razbienie
     if sum1=sum2 then Begin  //Проверяем равенство сумм
 
{Строчка ниже комментария закоментирована, но если надо вывести суммы или номера билетов, то делается это тут}
    //   writeln('bilet=',N{,'  sum1=',sum1,'  sum2=',sum2});    
       inc(count);  //Если билеты найдены, увеличиваем счетчик счастливых билетов
     end;
    end;
    writeln(count);   //Выводим результат на экран
    readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы