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

работа с цифрами заданного Числа - C++

Восстановить пароль Регистрация
 
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
30.10.2011, 23:49     работа с цифрами заданного Числа #1
С++. Как можно обращаться к нужной цифре в числе. Например есть число 34562, а я хочу сложить 3 и 5 цифру, или 1-ую с 4-ой, как это можно сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2011, 23:49     работа с цифрами заданного Числа
Посмотрите здесь:

C++ Работа с цифрами
Работа с цифрами C++
C++ Дано натуральное число с различными цифрами. Определить, максимальная цифра числа расположена ближе к началу или концу числа
C++ Перевод числа из одной с.с. в другую, манипуляции с цифрами числа
C++ Вывести все трехзначные числа, квадраты которых оканчиваются тремя цифрами, которые и составляют искомые числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bers
Заблокирован
30.10.2011, 23:54     работа с цифрами заданного Числа #2
Допустим, у вас есть число:

Цитата Сообщение от amor1k Посмотреть сообщение
34562
Вам нужно выдернуть последнею цифру, то бишь цифру 3.
Что для этого нужно?

Нужно все это число разделить на 10000.

Получится: 3,4562.

Теперь забираем себе только целую часть: 3.

Все что нужно - это универсальный алгоритм, который будит выдёргивать цифры из любого разряда. Для этого не нужно быть программистом. Достаточно чуть чуть логики и воображения.
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
31.10.2011, 00:00  [ТС]     работа с цифрами заданного Числа #3
то есть, чтобы взять допустим цифру 4 надо % 10000 / 1000? Я правильно понял?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
31.10.2011, 00:08     работа с цифрами заданного Числа #4
Делишь на 10 пока нужная цифра не переместится на место младшего разряда, затем находишь остаток от деления на 10. Для 4 цифры - (num / 1000) % 10.
LostCoast
82 / 82 / 5
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
31.10.2011, 00:09     работа с цифрами заданного Числа #5
на мой взгляд, лучше вбивать строку, а потом циклом сравнить каждый элемент строки с нужным числом.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
31.10.2011, 00:10     работа с цифрами заданного Числа #6
Действительно хорошая идея
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
31.10.2011, 00:19  [ТС]     работа с цифрами заданного Числа #7
Спасибо всем, вариант со строкой учту)
Bers
Заблокирован
31.10.2011, 00:30     работа с цифрами заданного Числа #8
Цитата Сообщение от amor1k Посмотреть сообщение
34562
Дано: 34562 - это число.
Будим считать, что 2 - цифра первого разряда, а 3 - 5 разряда, тогда:

Множитель = 10 в степени искомый_разряд; //если искомый разряд равен 1, то множитель равно 10

число_искомого_разряда = (целая_часть) (число/Множитель ); //3456
число_искомого_разряда=число_искомого_разряда*Множитель ; //34560
число_искомого_разряда=число - число_искомого_разряда //34562-34560=2
число_искомого_разряда= (целая_часть) (число_искомого_разряда/ множитель/10) // 2/1=2

------

Если искомый разряд равно 2, тогда:

Множитель = Искомый_разряд в степени 10; //если искомый разряд равен 2, то множитель равно 100


число_искомого_разряда = (целая_часть) (число/Множитель ); //345
число_искомого_разряда=число_искомого_разряда*Множитель ; //34500
число_искомого_разряда=число - число_искомого_разряда //34562-34500=62
число_искомого_разряда= (целая_часть) (число_искомого_разряда/множитель/10); // (целая_часть) (62/10) =6
----


Если искомый разряд равно 3, тогда:

Множитель = Искомый_разряд в степени 10; //если искомый разряд равен 3, то множитель равно 1000

число_искомого_разряда = (целая_часть) (число/Множитель ); //34
число_искомого_разряда=число_искомого_разряда*Множитель ; //34000
число_искомого_разряда=число - число_искомого_разряда //34562-34000=562
число_искомого_разряда= (целая_часть) (число_искомого_разряда/множитель/10); // (целая часть) (562/100)=5


Аналогия ясна? Тебе нужно учится придумывать алгоритмы.
Алгоритм - это просто последовательность действий, в которых прослеживается определённая закономерность. Для этого даже не нужно язык программирования знать.

Добавлено через 9 минут
Цитата Сообщение от LostCoast Посмотреть сообщение
на мой взгляд, лучше вбивать строку, а потом циклом сравнить каждый элемент строки с нужным числом.
А что бы число привести к текстовому представлению, нужно сначала повыдергать все её циферки. А потом уже получить строку.

А вы предлагаете, после всей этой работы, провести обратное изъятие циферок из текстового представления, и перевод отдельной циферки обратно в число.

Ну если вас не смущает тройная работа и издержи по скорости - тоже вариант. Главное, мозги включать лишний раз не придётся.
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
31.10.2011, 00:30  [ТС]     работа с цифрами заданного Числа #9
Вроде вместо всего этого можно делать
C++
1
2
3
int a = 4563;
int b = a % 10; // b = 3
b = a % 100; // b = 63
и т.д.
Так?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2011, 00:38     работа с цифрами заданного Числа
Еще ссылки по теме:

Работа с цифрами в числе C++
C++ Найти все трехзначные числа, квадраты которых оканчиваются тремя цифрами, которые и составляют искомые числа
C++ Вывести на экран все элементы заданного столбца матрицы большие заданного числа

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Bers
Заблокирован
31.10.2011, 00:38     работа с цифрами заданного Числа #10
Цитата Сообщение от amor1k Посмотреть сообщение
int a = 4563;
int b = a % 10; // b = 3
b = a % 100; // b = 63

int test=4563;
int pos=2; //выдергиваем циферку 6
int power= pow(10,pos);//10 в степени pos

int value= (test% power) / (power/10);
Yandex
Объявления
31.10.2011, 00:38     работа с цифрами заданного Числа
Ответ Создать тему
Опции темы

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