Cümə, 09.12.2016, 22:16
İnformatikanın məktəbdə tədrisi
Baş səhifə Qeydiyyat Giriş
e-mail: informatik-az@mail.ru · RSS
Menyu
Fotoşəkillər
Giriş forması
Sorğu
Müəllim kimi informatika dərslərində tez-tez istifadə edirəm:
Cavabların sayı: 6163
Faydalı keçidlər

  • ict.edu.az
  • ict.az
  • telekommunikasiya.edu.az
  • İnf-math.narod.ru
  • Millibyte.az
  • kayzen.az/blog/informatika
  • alqoritm.ucoz.org
  • mincom.gov.az
  • Facebook-da
    Təqvim
    «  Dekabr 2016  »
    B.e.Ç.a.ÇC.a.CŞB
       1234
    567891011
    12131415161718
    19202122232425
    262728293031
    Təqdimatlar
    Saat
    Statistika

    Onlayn: 8
    Ziyarətçilərin sayı: 8
    Qeydiyyatdan keçənlərin sayı: 0


     2-8r

             Дано натуральное число n. Выяснить, сколько раз в этом числе встречается его максимальная цифра (за один просмотр числа). Например в числе 673757 максимальная цифра 7 и встречается она  3 раза, а в числе 4935 максимальная цифра 9 и встречается она 1 раз.

     Первый алгоритм, который приходит в голову – найти сначала максимальную цифру, как мы это сделали в задаче 7, а затем заново просматривать цифры числа и считать, сколько раз эта максимальная цифра повторится. Но в условии сказано, чтобы мы  исходное число просматривали только один раз. А этот алгоритм уже немного заковыристее. Обозначим само максимальное число qmax, а количество максимальных k.   Понятно, что обе эти переменные в начале должны быть равны 0. А сам алгоритм удивительно прост: если очередная цифра больше максимальной, то эта цифра становится максимальной и максимальная цифра пока одна, то есть k делаем равной 1. Если же очередная цифра равна максимальной, то увеличиваем  k  на 1. Эти действия выполняются в программе  в строках 11 – 13.

    Отметим, что  INC(k);  это тоже самое, что и  k := k + 1;  ( а в С++  это  k++ )

     


    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18


    Program A2_8;

    Var

      n,n1:int64;

      q,qmax,k:integer;

     begin

       readln(n);

       n1:=n; k:=1; qmax:=0;

       while (n1<>0) do

         begin

           q:=n1 mod 10;

           if (q>qmax) then

              begin qmax:=q; k:=1; end

           else if (q=qmax)then INC(k);

           n1:=n1 div 10;

         end;

       writeln(k);

       readln;

     end.



    // Program A2.8;

    #include <iostream>

     

    using namespace std;

     

    int main()

    { long long n,n1;

       int q,qmax=0,k=1;

       cin>>n;

       n1=n;

       while(n1)

       {  q=n1%10;

           if (q>qmax) {qmax=q;k=1;}

           else if( q==qmax)k++;

           n1=n1/10;

       }cout<<k<<endl;

        return 0;

    }

    Copyright İsaNaida © 2016
    PYTHON 3.4
    ALPLogo
    Elan
    Fəxr edirik


    Bölmələr
    MÜSABİQƏ
    Azərbaycanda İKT
    Axtarış
    Video
    Info-Ko