AkimovaI1608
?>

Напишите программу, которая получает с клавиатуры натуральное число и находит наибольшую цифру в его десятичной записи. напишите программу, которая получает с клавиатуры натуральное число и определяет, есть ли в его десятичной записи одинаковые цифры, стоящие рядом.

Информатика

Ответы

groomingprofi56
Var
N,A:integer;
Begin
Write('N = ');Read(N);
A:=0;
While N>0 do
   Begin
   if (N mod 10) > A then A:= N mod 10;
   N:=N div 10;
   End;
Write(A)
End.

Var
N,A,B:integer;
C:boolean;
Begin
Write('N = ');Read(N);
A:=-1;
B:=-2;
C:=false;
While N>0 do
   Begin
   if A=B then C:=true;
   if N>0 then
      Begin
      A:=N mod 10;
      N:=N div 10;
      End;
   if A=B then C:=true;
   if N>0 then
      Begin
      B:=N mod 10;
      N:=N div 10;
      End;
   End;
if A=B then C:=true;
if C then Write('Есть')
else Write('Нет')
End.
eleniloy26
Каждая из компонент связности должна быть кликой (иначе говоря, каждые две вершины в одной компоненте связности должны быть связаны ребром). Если в i-ой компоненте связности n_i вершин, то общее число рёбер будет суммой по всем компонентам связности:

\displaystyle \sum_{i=1}^K\frac{n_i(n_i-1)}2=\frac12\sum_{i=1}^K n_i^2-\frac12\sum_{i=1}^Kn_i=\frac12\sum_{i=1}^K n_i^2-\frac N2

Требуется найти максимум этого выражения (т.е. на самом деле - максимум суммы квадратов) при условии, что сумма всех ni равна N и ni - натуральные числа.

Если K = 1, то всё очевидно - ответ N(N - 1)/2. Пусть K > 1.

Предположим, n1 <= n2 <= ... <= nK - набор чисел, для которых достигается максимум, и n1 > 1. Уменьшим число вершин в первой компоненте связности до 1, а оставшиеся вершины "перекинем" в K-ую компоненту связности. Вычислим, как изменится сумма квадратов:
\Delta(\sum n_i^2)=(1^2+(n_K+n_1-1)^2)-(n_1^2+n_K^2)=2(n_1-1)(n_K-1)
Поскольку по предположению n1 > 1 (тогда и nK > 1), то сумма квадратов увеличится, что противоречит предположению о том, что на выбранном изначально наборе достигается максимум. Значит, максимум достигается, если наименьшая по размеру компонента связности - изолированная вершина. Выкинем эту компоненту связности, останутся K - 1 компонента связности и N - 1 вершина. Будем продолжать так делать, пока не останется одна вершина, тогда получится, что во всех компонентах связности кроме последней должно быть по одной вершине.

Итак, должно выполняться
n_1=n_2=\cdots=n_{K-1}=1;\qquad n_K=N-K+1

Подставив в исходную формулу, получаем
\displaystyle\frac{(N-K)(N-K+1)}{2}

Это и есть ответ.
Шаленко
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!

type
  CheckBalls=class
 
  private
   
    ad:array of real; // диаметры шариков
    ap:array of real; // веса шариков
    etD:=24.0; // эталонный диаметр
    derD:=2.0; // эталонное предельное отклонение
    etP:=74.0; // эталонный вес
    derP:=3.0; // эталонное предельное отклонение
   
    procedure CheckBall(m:integer);
    // проверка шарика с указанным номером
    begin
      Write('Шарик № ',m,': диаметр - ');
      if Abs(aD[m-1]-etD)<=derD then Write('норма')
      else Write('брак');
      Write(', вес - ');
      if Abs(aP[m-1]-etP)<=derP then Writeln('норма')
      else Writeln('брак')
    end;
  
 
  public
 
    constructor(ma,mp:array of real);
    begin
      ad:=Copy(ma);
      ap:=Copy(mp);
    end;
   
    procedure CheckAllBalls;
    begin
      for var i:=1 to ad.Length do CheckBall(i)
    end;
 
end;

begin
  var n:=120; // число шариков
  var a:=SeqRandom(n,200,280).Select(t->t/10).ToArray;
  var b:=SeqRandom(n,700,800).Select(t->t/10).ToArray;
  Writeln('Параметры шариков (диаметр,вес):');
  a.Zip(b,(p,q)->(p,q)).Println;
  Writeln('Результаты контроля:');
  var oL:=new CheckBalls(a,b);
  oL.CheckAllBalls
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите программу, которая получает с клавиатуры натуральное число и находит наибольшую цифру в его десятичной записи. напишите программу, которая получает с клавиатуры натуральное число и определяет, есть ли в его десятичной записи одинаковые цифры, стоящие рядом.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Баранов955
magazin3000
dashkevich-76611
zu87zu87
Ермакова Ирина674
socofilesrus4
russstep
stomcom01
eeirikh
zapros
Алла14
sveta1864
milleniumwood633
Попова1271
Pautova1119