- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
吾有一術。名之曰「斐波那契」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
若「甲」等於零者乃得零也
若「甲」等於一者乃得一也
減「甲」以一。減「甲」以二。名之曰「乙」。曰「丙」。
施「斐波那契」於「乙」。名之曰「丁」。
施「斐波那契」於「丙」。名之曰「戊」。
加「丁」以「戊」。名之曰「己」。
乃得「己」。
是謂「斐波那契」之術也。
施「斐波那契」於十二。書之。
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 3
+1
吾有一術。名之曰「斐波那契」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
若「甲」等於零者乃得零也
若「甲」等於一者乃得一也
減「甲」以一。減「甲」以二。名之曰「乙」。曰「丙」。
施「斐波那契」於「乙」。名之曰「丁」。
施「斐波那契」於「丙」。名之曰「戊」。
加「丁」以「戊」。名之曰「己」。
乃得「己」。
是謂「斐波那契」之術也。
施「斐波那契」於十二。書之。
文言 wenyan-lang
Числа Фибоначчи.
https://github.com/wenyan-lang/wenyan
+1
CStringUtf8::iterator& CStringUtf8::iterator::operator++()
{
m_ptr += CCharUtf8Ref::s_bytesForUTF8Sequence[*m_ptr];
return *this;
}
CStringUtf8 CStringUtf8::subString( size_t startChar, size_t count ) const
{
iterator start = this->begin();
while( start!=this->end() && startChar>0 )
{
start++;
startChar--;
}
iterator afterLast = start;
while( afterLast!=this->end() && count!=0 )
{
afterLast++;
count--;
}
return CStringUtf8( start.c_ptr(), afterLast.c_ptr() );
}
CStringUtf8::iterator CStringUtf8::findSubString( CStringUtf8 const& sample, CStringUtf8::iterator startFrom ) const
{
CStringUtf8::iterator pos = startFrom;
CStringUtf8::iterator foundPos = pos;
CStringUtf8::iterator samplePos = sample.begin();
for( ;; )
{
if( samplePos==sample.end() )
return foundPos;
if( pos==this->end() )
return this->end();
if( *samplePos == *pos )
{
if( samplePos==sample.begin() )
foundPos = pos;
samplePos++;
pos++;
}
else
{
if( samplePos==sample.begin() )
pos++;
samplePos = sample.begin();
}
}
}
std::vector<CStringUtf8> CStringUtf8::componentsSeparatedByString( CStringUtf8 const& separator ) const
{
std::vector<CStringUtf8> comps;
size_t sepLen = std::distance( separator.begin(), separator.end() );
size_t startPos = 0;
CStringUtf8::iterator itStart = begin();
if( sepLen > 0 )
{
CStringUtf8::iterator itEnd;
while( ( itEnd = findSubString( separator, itStart ) ) != end() )
{
size_t cnt = std::distance( itStart, itEnd );
CStringUtf8 str = subString( startPos, cnt );
comps.push_back( str );
itStart = itEnd;
std::advance( itStart, sepLen );
startPos += cnt + sepLen;
}
}
size_t cnt = std::distance( itStart, end() );
if( cnt > 0 )
{
CStringUtf8 str = subString( startPos, cnt );
comps.push_back( str );
}
return comps;
}
Привычный для всех плюсовиков велосипед по работе со строкой (походу свой в каждом проекте).
Более 10 лет не замечали тормоза в componentsSeparatedByString, который 100 Кб текст разбирал на строки за 5-10 сек (!!!).
0
auto srv = http::Server::create(
JsClosure::create([] (JsArray::Ptr args) {
auto res = args->getPtr<http::ServerResponse>(1);
res->setHeader(http::HEADER_CONTENT_TYPE, str("text/plain"));
res->end(str("Hello World\n"));
return UNDEFINED;
}));
srv->listen(1337, str("127.0.0.1"));
node::run();
https://github.com/plenluno/libnode
Что если взять два говна (плюсы и js) и сделать свою ноду? Получится этот высер с потугами на embedded.
Неосилятор? Или переосилятор?