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

Получить q ичное представление числа - C++

Восстановить пароль Регистрация
 
Nikita56
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 5
11.10.2012, 18:41     Получить q ичное представление числа #1
Даны натуральные числа p и q(q>=2).Получить q-ичное представление числа p в виде такой последовательности a[1]...a[n] целых неотрицательных чисел что a[i]<q(i=0,...,n) и p=a[n]*q в степени n+..a[1]*q+a[0](a[n]!=0)
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 18:41     Получить q ичное представление числа
Посмотрите здесь:

C++ 2-ичное представление числа типа double или float?
Дано натуральное число. Получить строковое представление этого числа C++
C++ Перевести к-ичное число Ак в g-ичную систему счисления зы 102213, g = 9
Как получить int представление char (русские символ cp1251)? C++
Получить двоичное строковое представление целого неотрицательного числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
12.10.2012, 10:26     Получить q ичное представление числа #2
не совсем понял задание особенно после слова что

если имеется ввиду что p и q мы задаем с клавиатуры, то само представление числа выглядит так
C++
1
2
3
4
5
6
7
int chislo=0,buf=p;
while(buf){
    chislo*=10;
    chislo+=buf%q;
    buf/=q;
}
//chislo будет qричное представление числа p
а далее видимо дело вот этой проверки
Цитата Сообщение от Nikita56 Посмотреть сообщение
a[i]<q(i=0,...,n) и p=a[n]*q в степени n+..a[1]*q+a[0](a[n]!=0)
Байт
 Аватар для Байт
13961 / 8792 / 1223
Регистрация: 24.12.2010
Сообщений: 15,925
12.10.2012, 10:51     Получить q ичное представление числа #3
C
1
2
3
4
5
6
7
8
9
10
11
12
char a[100];
for(j=0; p>0; j++) {
 a[j] = p % q;
 p /= q;
}
  // Получили в a представление p в q-ричной системе, только "наоборот"
for( ; j>=0; j--) {
 if (a[j]<10) a[j] = '0' + a[j];
 else a[j] = 'a' + a[j] - 10;
 cout << a[j];
}
cout << endl;
Добавлено через 3 минуты
MrGrig, ваше решение симпатично, но работает только для q<=10
Мое же охватывает диапазон 2<= q <= 36
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
12.10.2012, 11:21     Получить q ичное представление числа #4
Цитата Сообщение от Байт Посмотреть сообщение
MrGrig, ваше решение симпатично, но работает только для q<=10
Мое же охватывает диапазон 2<= q <= 36
ну моя функция самая простая конечно же, к ней можно конечно еще прикрутить условия если больше 10 то %10 и далее вставляем соответствующую букву, помню как то на первом курсе меня препод озадачил лабой где дана была строка, вней нужно было заменить все числа на них же только в 16 системе, тогда я после долгих раздумий написал чтото типо вашего кода, только конечно по неопытности он у меня раза в 3-4 был больше =)
Yandex
Объявления
12.10.2012, 11:21     Получить q ичное представление числа
Ответ Создать тему
Опции темы

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