Форум программистов, компьютерный форум CyberForum.ru

Найти первую цифру числа - C++

Восстановить пароль Регистрация
 
marina5
0 / 0 / 0
Регистрация: 25.12.2014
Сообщений: 10
04.01.2015, 10:41     Найти первую цифру числа #1
Здравствуйте. Помогите написать алгоритм к заданию:

Дано натуральное N. Составить программу для поиска первой цифры этого числа.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.01.2015, 10:44     Найти первую цифру числа #2
Нулевая цифра равна остатку от деления на основание, сдвиг влево эквивалентен делению на цело на основание, причём, результат сдвига - это частное. Сначала надо сдвинуть, чтоб цифра стала нулевой, потом вычислить остаток.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
04.01.2015, 10:48     Найти первую цифру числа #3
C++
1
2
3
4
5
6
7
8
9
10
int firstDigit(int n)
{
   int k;
   do
   {
      k=n;
      n/=10;
   }while(n);
   return k;
}
TrueTerm
163 / 111 / 35
Регистрация: 25.12.2014
Сообщений: 370
04.01.2015, 11:04     Найти первую цифру числа #4
marina5, первая цифра- значит самая левая? Тут возможны разные подходы.
1)Можно преобразовать число в строку и взять самый левый символ. Правда некоторые функции преобразования могут подсунуть пробел перед числом в качестве знака, это уже нужно смотреть в конкретной системе.
2)целая часть (не округление, а отбрасывание дробной части) от десятичного логорифма N, как раз даёт количество цифр, которые надо обрезать справа, чтобы осталась одна искомая циферка. Обрезать столько цифр можно в цикле или разделив N на 10 в этой степени. Тут проблемы могут быть с точностью вычисления логарифма (вдруг перескочит и лишнюю цифру обрежет). И логарифм нуля не определён. Если 0 считается натуральным числом, то этот случай надо предусмотреть отдельно.
3)но скорее всего ожидается просто цикл "пока число больше 9, разделить его нацело на 10".
Вот то, что останется от числа после этого цикла, и будет искомой цифрой.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.01.2015, 11:53     Найти первую цифру числа #5
Вот только цифры нумеруются по-англо-еврейски: справа на лево и с ноля.
Yandex
Объявления
04.01.2015, 11:53     Найти первую цифру числа
Ответ Создать тему
Опции темы

Текущее время: 15:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru