БлогNot. C++: извлечь любую цифру из числа

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

C++: извлечь любую цифру из числа

При нумерации цифр числа справа налево, начиная с единицы, для извлечения из натурального числа n цифры под номером d достаточно выполнить код вида n%10d/10d-1

Пример законченного приложения (демка, код не "экономичный"):

#include <iostream.h>
#include <math.h>

int number_of_digits (unsigned long int n) {
 int d=0;
 while (n) { n/=10; d++; }
 return d;
}

int expand_digit (unsigned long int n, int d) {
 return (n%(unsigned long int)pow(10,d))/(unsigned long int)pow(10,d-1);
}

int main () {
 unsigned long int n;
 int d;
 cout << "Введите натуральное число: ";
 cin >> n;
 cout << "Введено число:" << n << endl;
 int digits = number_of_digits (n);
 do {
  cout << "Введите номер извлекаемой цифры (1-" <<
   digits << ", нумерация справа налево): ";
  cin.clear(); cin.sync(); cin >> d;
 } while (d<1 || d>digits);
 cout << "Получена цифра: " << expand_digit (n,d) << endl;
 cin.sync(); cin.get();
 return 0;
}

теги: c++ алгоритм

показать комментарии (1)

19.11.2013, 22:53; рейтинг: 10390

  свежие записипоиск по блогукомментариистатистика

Наверх Яндекс.Метрика
© PerS
вход