Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2014, 00:36   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

c C++ не помогу, не знаю я этот язык...

Вам нужно:
объявить строковую переменную
ввести туда число с консоли (пользователь вводит)
пройтись по числу и найти символ с максимальным кодом.
если от кода этого символа отнять код символа '0' и прибавить к полученному числу единицу, то получится число, которое и является ответом (это будет минимально допустимое значение основание системы счисления).
профит.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.02.2014, 12:25   #12
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Вам же самому очевидно, что в любой системе счисления используются цифры (и буквы, если цифр не хватает) от нуля
нет, не очевидно. Даже не говоря о всяких непозиционных системах, системах остаточных классов (где ваши эти догадки тоже не работают) есть обычная троичная взвешенная (где всего 3 цифры (-1), (0), (1).

Я бы решал задачу так, как проще (препод сам накосячил криво поставив задачу), зачем нам додумывать самим себе проблем (вы этим и занимаетесь)
rrrFer вне форума Ответить с цитированием
Старый 05.02.2014, 12:28   #13
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Код:
#include <iostream>
#include <set>
#include <string>

int main() {
	std::string str;
	std::set<char> tset;
	
	std::cout << "enter number: ";
	std::cin >> str;
	
	for (auto t : str)
		tset.insert(t);
	
	std::cout << "base: " << tset.size() + 1 << std::endl;
}
Проверил:
Цитата:
rrrfer@linux-2oyq:~/project> g++ main.cpp -o main -std=c++11
rrrfer@linux-2oyq:~/project> ./main
enter number: 1234
base: 5
rrrfer@linux-2oyq:~/project> ./main
enter number: b&^RFTF!!!!1224
base: 11
rrrFer вне форума Ответить с цитированием
Старый 05.02.2014, 12:36   #14
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Вариант Сергея (доработанный - вариант с отниманием нуля не работает для букв, которые есть по заданию)
Код:
#include <iostream>
#include <algorithm>
#include <string>

int main() {
	std::string str;
	
	std::cout << "enter number: ";
	std::cin >> str;
	
	char t = *std::max_element(str.begin(), str.end());
	
	if (t <= '9') 
		std::cout << "base: " <<  t - '0' + 1 << std::endl;
	else
		std::cout << "base: " <<  11 + t - 'A' << std::endl;
}
Проверка:
Код:
rrrfer@linux-2oyq:~/project> g++ main.cpp -o main -std=c++11
rrrfer@linux-2oyq:~/project> ./main
enter number: 123
base: 4
rrrfer@linux-2oyq:~/project> ./main
enter number: 999
base: 10
rrrfer@linux-2oyq:~/project> ./main
enter number: 4564F
base: 16
rrrfer@linux-2oyq:~/project>
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает преобразование кода из одной системы счисления в ID в другой системе счисления Ultran PHP 1 09.11.2013 21:15
системы счисления Вера_09 Помощь студентам 3 28.09.2011 11:57
Системы счисления c++ Kholmansky Помощь студентам 7 11.09.2011 06:10
определить минимальное основание системы счисления sp.caster Паскаль, Turbo Pascal, PascalABC.NET 5 16.04.2011 17:19
Системы счисления alexmikt Фриланс 2 27.02.2010 02:52