dreamer
Member
Как "длинное" число поделить на "длинное" ? Напишите хотя бы алгоритм.
You must be registered for see links
Как "длинное" число поделить на "длинное" ? Напишите хотя бы алгоритм.
вроде какая-то есть, можно сделать без функций. В списке будем хранить все элементы как char.Нужно список поделить на два стека: в одном - цифры, в другом - буквы.
Есть ли функция, которая распознаёт цифры (или буквы)?
char n;//символ с списка
if (n >= '0' && n <= '9')
/*по ASCII таблице все цифры(буквы тоже) идут подряд.
Если n лежит в этом диапазоне, значит это число. */
add1(n) // добавляем в 1 стек(там где числа int)
else
add2(n) // иначе добавляем в 2 стек (там где буквы).
int k;
char n='5';
k=n-'0'; //k имеет тип int и равно 5.
#include <ctype.h>Нужно список поделить на два стека: в одном - цифры, в другом - буквы.
Есть ли функция, которая распознаёт цифры (или буквы)?
Не хватает 64 бит? Самое банальное представляй числа в виде массива и пиши функцию для деленияКак "длинное" число поделить на "длинное" ? Напишите хотя бы алгоритм.
class A
{
public:
A(Log_system& log):_log(log){};
Log_system& _log;
void test_log()
{
this->_log<<"Test log system"<<std::endl;
}
};
----------------------
#include <iostream>
int main()
{
A testA(std::cout);
testA.test_log();// std::cout<<"Test log system"<<std::endl;
}
#include <iostream>
using namespace std;
template<class LG> class A
{
public:
A(LG &log_system):log(log_system){};
LG &log;
void test_log()
{
this->log<<"Test log system"<<endl;
}
};
int main()
{
A<ostream> testA(cout);
testA.test_log();
return 0;
}
#include <iostream>
using namespace std;
class A
{
public:
template<class LG> A(LG &log_system):log(log_system){};
template<class LG> LG &log;
void test_log()
{
this->log<<"Test log system"<<endl;
}
};
int main()
{
A testA(cout);
testA.test_log();
return 0;
}
Если сам класс не должен быть шаблоном, сделай что-то вроде (С++ уже плохо помню, могу ошибаться в синтаксисе):нельзя что бы класс инициировался как A<log_system_type> instanceA(....);
должно быть просто A instanceA(...);
abstract class Logger
{
virtual Logger *operator<<(char*) = 0;
}
template<class T> class LoggerImpl : public Logger
{
T out;
Logger *operator<<(char* msg) {
out << msg;
return this;
}
}
хм.. можно попробовать с wrapper'ом над логгеромЕсли сам класс не должен быть шаблоном, сделай что-то вроде (С++ уже плохо помню, могу ошибаться в синтаксисе):
получишь и гибкость и шаблоныКод:abstract class Logger { virtual Logger *operator<<(char*) = 0; } template<class T> class LoggerImpl : public Logger { T out; Logger *operator<<(char* msg) { out << msg; return this; } }
Помогите с задачей:
задан масив с размерностью n, сформировать два масива таким образом чтобы в первом имелись елементы данного масива с парным индексом, а во втором с не парным.
int input[N]=...; //входной массив
int array1[N/2+1],array2[N/2+1];// выходные массивы
for(int i=0;i<N;i++)
{
if(i%2==0) array1[i/2]=input[i];//парный индекс
else array2[i/2]=input[i];//непарные индексы
}