§ 6. Выкарыстанне асноўных алгарытмічных канструкцый для рашэння задач

6.6. Вылучэнне лічбаў з ліку

Прыклад 6.18. Дадзены натуральны лік n. Сфарміраваць новы лік, які складаецца з няцотных лічбаў ліку n.

Этапы выканання задання

I. Зыходныя даныя: n (лік).

II. Вынік: s (новы лік)

III. Алгарытм рашэння задачы.

1. Увод зыходных даных — лік n.
2. Вызначэнне пачатковага значэння новага ліку
: s = 0.
3. У пераменнай 
r будзем захоўваць значэнне разраднай адзінкі для бягучай цотнай лічбы. Пачатковае значэнне r = 1.
4. У цыкле, пакуль у ліку ёсць лічбы
:

4.1. Знайсці астачу от дзялення бягучага ліку на  10 (z — бягучая лічба ліку). 
4.2. Праверыць, ці з’яўляецца атрыманая лічба няцотнай. 
4.3. Калі лічба няцотная, то памножыць яе на значэнне разраднай адзінкі і прыбавіць да значэння s, павялічыць значэнне разраднай адзінкі ў 10 разоў. 
4.4. Паменшыць бягучы лік у 10 разоў.

5. Вывад значэння пераменнай s. Каліs = 0, то ў ліку няма няцотных лічбаў.

IV. Апісанне пераменных: n, s, r, z – int.

Прыклад 6.18.

V. Праграма:

#include <iostream>

 

using namespace std

 

int main()

{

  int n;

  cout << "n = ";

  cin >> n;

  int s = 0, r = 1;

  while (> 0){

    int z = n % 10;

    if (% 2) {

      s += z * r;

      r *= 10;

    }

    n /= 10;

  }

  if (s)

    cout << "s = " << s << endl;

  else

    cout << "net nechetnyh" << endl;

  return 0;

}

VI. Тэсціраванне.