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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2016, 17:14   #1
Надина
Пользователь
 
Регистрация: 27.12.2015
Сообщений: 18
По умолчанию задача в паскале "Счастливый билет"

Помогите составить программу в паскале решающую задачу.
Билет называется «счастливым», если в его номере сумма первых трех цифр равно сумме последних трех. Написать программу, подсчитывающую количество тех «счастливых» билетов, у которых сумма трех цифр равна 13
Надина вне форума Ответить с цитированием
Старый 18.01.2016, 17:28   #2
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

для JS подсчет всех счастливых билетиков
Код:
function SumCifr(X)
{
var Sum = 0;
var x = 0;  
x = X
while (x != 0)
	{
	 Sum = Sum + (x % 10); // mod
	 x =  Math.floor(x / 10); // div
	}
return Sum ;
}

function Suma ()
{
var e = document.forms[0].elements;
var SumBel = 0; 
for (var j = e["Edit1"].value; j <= e["Edit2"].value;j++)
 for (var i = e["Edit3"].value; i <= e["Edit4"].value;i++)    
	if (SumCifr(i) == SumCifr(j)) 	
    	SumBel++	
e["lable1"].value = SumBel;
сойдет?
Код:
var i,j,Summa:integer;
function SumCifr(X:integer):integer;
var Sum:integer;
Begin
Sum:=0;
while (x <> 0) do
	Begin
	 Sum:=Sum+(x mod 10);
	 x:=(x div 10);
	end;
SumCifr:=Sum ;
end;
begin
summa:=0;
for i:=1 to 999 do
 for j:=1 to 999 do
  if (sumCifr(i) = 13) and (sumCifr(j) = 13) then 
   inc(summa); 
writeLn(summa);
readln;   
end.
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Dvoishnik; 18.01.2016 в 17:53. Причина: добавил решение для паскаль
Dvoishnik вне форума Ответить с цитированием
Старый 18.01.2016, 17:28   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

https://sites.google.com/site/pascal...ci-cikl-repeat
Цитата:
Задача №2
Билет называют "счасливым", если в его номер сумма первых трёх цифр равна сумме последних трёх. Подсчитать число
тех "счастливых" билетов, у которых сумма трёх цифр равна 13.
1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ.Сохраните под именем schactliv.pas
2.Вводим число.
3.Переменная k -количество равно единице.
repeat
i:=i+1;
if(i div 100)+(i div 10 mod 10)+(i mod 10)=13
then k:=k+1;
until i>999;
http://www.cyberforum.ru/pascal/thread98508.html
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 18.01.2016, 17:44   #4
Надина
Пользователь
 
Регистрация: 27.12.2015
Сообщений: 18
По умолчанию

это для билета из скольких цифр трех или девяти?
Надина вне форума Ответить с цитированием
Старый 18.01.2016, 17:57   #5
Надина
Пользователь
 
Регистрация: 27.12.2015
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
для JS подсчет всех счастливых билетиков
Код:
function SumCifr(X)
{
var Sum = 0;
var x = 0;  
x = X
while (x != 0)
	{
	 Sum = Sum + (x % 10); // mod
	 x =  Math.floor(x / 10); // div
	}
return Sum ;
}

function Suma ()
{
var e = document.forms[0].elements;
var SumBel = 0; 
for (var j = e["Edit1"].value; j <= e["Edit2"].value;j++)
 for (var i = e["Edit3"].value; i <= e["Edit4"].value;i++)    
	if (SumCifr(i) == SumCifr(j)) 	
    	SumBel++	
e["lable1"].value = SumBel;
сойдет?
Код:
var i,j,Summa:integer;
function SumCifr(X:integer):integer;
var Sum:integer;
Begin
Sum:=0;
while (x <> 0) do
	Begin
	 Sum:=Sum+(x mod 10);
	 x:=(x div 10);
	end;
SumCifr:=Sum ;
end;
begin
summa:=0;
for i:=1 to 999 do
 for j:=1 to 999 do
  if (sumCifr(i) = 13) and (sumCifr(j) = 13) then 
   inc(summa); 
writeLn(summa);
readln;   
end.
Кажется подходит. Спасибо!!!!
Надина вне форума Ответить с цитированием
Старый 18.01.2016, 17:59   #6
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Надина Посмотреть сообщение
это для билета из скольких цифр трех или девяти?
для 9 он проверяет только суммы первых 3 чисел потому они будут такими же для второй группы.

Aleksandr H.
разве не нужно было бы результат в квадрат возвести??
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Dvoishnik; 18.01.2016 в 18:06.
Dvoishnik вне форума Ответить с цитированием
Старый 18.01.2016, 19:29   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Мне почему-то кажется, что цикл тут нужен чуть менее, чем никак.
Код:
function SemisumCount(x: Integer): Integer; inline;
const
  COUNTS: array[0..27] of Integer =
    (1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 63, 69, 73, 75,
     75, 73, 69, 63, 55, 45, 36, 28, 21, 15, 10, 6, 3, 1);
begin
  // х = сумме первой тройки цифр (в твоём случае х = 13)
  if not (x in [0..27])
    then raise Exception.CreateFmt('%d нельзя!', [x]);
  Result:= COUNTS[x] * COUNTS[x]; // 75 в квадрате, вроде бы = 5625
end;
Ахтунг! Аттеншн! Внимание! Увага!!! SHIT-CODE detected!!! Не отлаживал, писал на заборе!

Проверяй, короче.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать программу, которая выводит дату рождения пользователя(месяц и день) и выдает по ней ближайший "счастливый" год Den_Dodge Помощь студентам 1 03.10.2015 12:57
Помогите пожалуйста! написать программу, которая при вводе пользователем даты рождения выдает ближайший "счастливый" год Den_Dodge Помощь студентам 10 12.09.2015 22:28
Программа-задача "Счастливый билетик" Macromedia Flash MX Oksana_Boo Помощь студентам 1 11.08.2014 08:58
Задача 2. "Прикольный билет" Azamat0 Помощь студентам 1 24.10.2010 14:48
Задача "Счастливый билет" (Turbo Pascal) - трубуется помощь BzDoN Помощь студентам 16 20.12.2009 19:29