Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 2
Регистрация: 08.10.2015
Сообщений: 74
1

Три блондинки были свидетелями нарушения правил дорожного движения. Номер автомобиля – четырёхзначное число

07.03.2016, 23:41. Показов 1313. Ответов 3
Метки нет (Все метки)

Три блондинки были свидетелями
нарушения правил дорожного движения. Номер автомобиля –
четырёхзначное число – никто, конечно не запомнил. Но из оживлённого
разговора следователь узнал, что номер делится на 2, на 11 и на 7, в записи
номера участвуют только две цифры, а сумма цифр номера равна 30.Найдите
номер машины.

Добавлено через 15 минут
Понял как
Pascal
1
2
3
4
5
6
7
var 
i:integer;
begin
for i:=1000 to 9999 do
if (i mod 2=0)and(i mod 7=0) and(i mod 11=0)and(i mod 10+(i div 10)mod 10+(i div 100)mod 10+i div 1000=30) 
then writeln(i);
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2016, 23:41
Ответы с готовыми решениями:

Тест ПДД (правил дорожного движения) C++ Builder
Вообщем, задали на курсовой проект написать тест правил дорожного движения, по скольку билдер токо...

База данных с информацией о нарушениях правил дорожного движения
Создать базу данных в MS Access, содержащую информацию о нарушениях правил дорожного движения. База...

Экзаменатор Правил Дорожного Движения. Как организовать хранение данных?
У меня тема курсовой работы: Экзаменатор Правил Дорожнего Движения. Мне нужно хранить всю...

Создать программный модуль "Учет нарушений правил дорожного движения"
Разработать программный модуль «Учет нарушений правил дорожного движения». Для каждой автомашины...

3
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31243 / 20423 / 7960
Регистрация: 22.10.2011
Сообщений: 35,452
Записей в блоге: 6
08.03.2016, 01:44 2
Вместо того, чтобы гонять почти 9 тысяч итераций, то же самое можно сделать за 58, и на каждой будет гораздо меньше вычислений:
Pascal
1
2
3
4
5
6
7
begin
  for var i: integer := 1000 div 154 to 9999 div 154 do
  begin
    var n: integer := i * 154;
    if (n mod 10 + (n div 10) mod 10 + (n div 100) mod 10 + n div 1000 = 30) then writeln(n);
  end;
end.
0
Модератор
Эксперт по электронике
7689 / 3846 / 1490
Регистрация: 01.02.2015
Сообщений: 11,889
Записей в блоге: 2
08.03.2016, 10:13 3
Учитывая дополнительное условие о всего двух различных цифрах в номере, программу volvo можно доработать до
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
program test;
 
var
  i: integer;
  N: integer;
  Count, Summa, Digit: integer;
  DigitsSet: set of byte;
begin
  for i := 1000 div (2 * 7 * 11) to 9999 div (2 * 7 * 11) do
  begin
    N := i * 2 * 7 * 11;
    if N < 1000 then
      continue;
    DigitsSet := [];
    Count := 0;
    Summa := 0;
    while N <> 0 do
    begin
      Digit := N mod 10;
      N := N div 10;
      if not (Digit in DigitsSet) then
        Inc(Count);
      include(DigitsSet, Digit);
      Summa := Summa + Digit;
    end;
    if (Summa = 30) and (Count = 2) then
      writeln(i * 2 * 7 * 11);
  end;
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31243 / 20423 / 7960
Регистрация: 22.10.2011
Сообщений: 35,452
Записей в блоге: 6
08.03.2016, 10:45 4
Кто-нибудь мне сможет объяснить, зачем надо было ломать совместимость с прежними версиями компилятора? Почему код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{$reference System.Core.dll}
uses System.Linq, System.IO, arrays;
 
var
  i, N: integer;
begin
  for i := 1000 div (2 * 7 * 11) to 9999 div (2 * 7 * 11) do
  begin
    N := i * 2 * 7 * 11;
    if N < 1000 then continue;
    var digits := n.ToString().ToArray().Select((ch : char) -> StrToInt(ch));
    if (digits.Sum() = 30) and (digits.Distinct().Count() = 2) then writeln(n);
  end;
end.
прекрасно работает с версией компилятора под .NET 2.0 (PABC.NET 1.7 сборка 460), но ни разу не компилируется Web-версией компилятора под .NET 4:
XML
1
2
3
4
5
6
7
8
9
10
Внутренняя ошибка компилятора в модуле Compiler.Compile[Program31.pas] :'System.Collections.Generic.KeyNotFoundException: Данный ключ отсутствует в словаре.
   в System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   в TreeConverter.LambdaExpressions.Closure.CapturedVariablesSubstitutor.SubstituteForLoopVariables()
   в TreeConverter.LambdaExpressions.Closure.CapturedVariablesSubstitutor.Substitute(statement_list statementList)
   в TreeConverter.LambdaExpressions.Closure.CapturedVariablesSubstitutionsManager.Substitute(syntax_tree_visitor _visitor, declarations decls, statement_list _statementList)
   в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(block _block)
   в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(program_module _program_module)
   в PascalABCCompiler.TreeConverter.SyntaxTreeToSemanticTreeConverter.CompileInterface(compilation_unit SyntaxUnit, unit_node_list UsedUnits, List`1 ErrorsList, List`1 WarningsList, SyntaxError parser_error, Hashtable bad_nodes, using_namespace_list namespaces, Dictionary`2 docs, Boolean debug, Boolean debugging)
   в PascalABCCompiler.Compiler.CompileUnit(unit_node_list Units, unit_or_namespace SyntaxUsesUnit)
   в PascalABCCompiler.Compiler.Compile()'
Странная забава: "возьми и испогань то, что делалось до тебя". Разработчики других компиляторов как раз наоборот - следят за тем, чтобы предыдущий код нормально компилировался. Что опять убеждает меня в том, что эта поделка (я про PABC.NET) не нужна. Ничего серьезного на ней написать нельзя. А если и напишешь - то при следующем обновлении вылетишь в трубу с таким подходом разрабов...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2016, 10:45

Определить порядковый номер автомобиля, имевшего максимальную из средних скоростей движения
Известны длины участков пути (в км), которые проехали 25 легковых автомобилей, и время,...

Определить порядковый номер автомобиля, имевшего максимальную из средних скоростей движения на участках.
Известны длины участков пути (в км), которые проехали 25 легковых автомобилей, и время,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.