Cümə, 09.12.2016, 20:28
İ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: 12
    Ziyarətçilərin sayı: 12
    Qeydiyyatdan keçənlərin sayı: 0


     2-11r

    2.1              Для всех натуральных чисел, от N до  M (N < M) проверить условие, что разность любого натурального числа и суммы его цифр кратна 9. Если это условие выполняется для всех чисел вывести на экран слово  YES, иначе слово NO.

     Алгоритм понятен: надо для каждого числа от N до M  найти сумму цифр (задача 2), найти разность исходного числа и этой суммы и проверить делимость на 9. Но обычно в этой задаче начинающие программировать всегда делают одну и ту же ошибку – для каждого числа, для которого выполняется требуемое условие, они выводят слово  YES. И если, например,  N=1000,  а M=9999, программа выдаст 10000 слов YES. Дело в том, что в этой программе слово YES  надо вывести один раз только, когда все числа от N до M  удовлетворяют требуемому условию, и вывести слово NO,  когда хотя бы один раз требуемое условие не выполнилось бы, и после этого программа должна закончит свою работу.

    В нашей программе оператор в строке 6 организует перебор всех чисел от N до M  В строках 8 – 13 находим сумму цифр числа n1 (равному i ). В строке 14 делимости разности  (i-s) на  9 и в случае, если эта разность не делится на 9, программа выводит слово NO и заканчивает свою работу: оператор  exit;  И только, когда все числа будут рассмотрены и ни разу условие не будет не выпонено, тогда после цикла for (строки 6 – 16) программа выдаст на экран слово YES.

     1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    Program A2_11;

    Var

      n,m,i,s,n1:integer;

     begin

       readln(n,m);

       for i:=n to m do

          begin

            n1:=i; s:=0;

            while(n1<>0) do

              begin

                s:=s + n1 mod 10;

                n1:=n1 div 10;

             end;

               if ((i-s) mod 9<>0) then

                  begin writeln('NO'); exit; end;

          end;

       writeln('YES');

       readln;

     end.

    // Program A2.11;

    #include <iostream>

     

    using namespace std;

     

    int main()

    {

       int n,m,i,s,n1;

       cin>>n>>m;

       for(i=n; i<=m; i++)

       {

           n1=i; s=0;

           while(n1)

    {  s+=n1%10;   // тоже, что и s=s+n1%10;

      n1/=10;   //  тоже, что и n1=n1/10;

           }

      if((i-s)%9!=0){cout<<"NO\n"; return 0;}

       }

           cout<<"YES\n";

        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