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

Написать элегантнее класс для сложения больших чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Получить код html-страницы http://www.cyberforum.ru/cpp-beginners/thread1783673.html
Нужно через C++ получить код html-страницы по http/https.
C++ Реальная задача для реального проекта для желающих покодить Привет:) Попросили сделать парсер сайта по-дружески, но у меня реально времени на него нет. Если кому-то интересно, могу двигать в нужном направлении и может, при желании, могу пинать за плохой код. Что нужно сделать - парсер с HTTP клиентом. Пример клиента на boost::asio скину, покажу как парсить HTML регулярками (да, есть библиотеки, но думаю руками будет интересней). Могу архитектуру... http://www.cyberforum.ru/cpp-beginners/thread1782931.html
Матрица перехода между двумя системами координат в 2D C++
Есть 2 системы координат в 2D пространстве. Есть координаты 2 точек в этих системах координат (как я понимаю, необходимо как раз 2 точки). Нужно найти матрицу перехода (X, Y, fi) между этими системами координат. Не подскажите, где взять готовый код на C++ или другом языке для решения этой задачи. А то решаю в лоб, получаются довольно большие уравнения с тригонометрией и несколькими решениями).
Парсинг и обход дерева C++
С помощью библиотеки htmlcxx парсится веб страничка. На выходе получаю DOM дерево. Ладно бы была одна страничка, тогда написал функцию для обхода, так страничек много и для каждой писать функцию для обхода с соответствующим поиском тегов и атрибутов это ж ппц как не охото. На шарпе юзал AngleSharp с его QuerySelectorAll, писал QuerySelectorAll("tr td:nth-child(1) a") и получал все нужные...
C++ Friend declaration construction http://www.cyberforum.ru/cpp-beginners/thread1781382.html
Читаю C++ Templates. The Complete Guide. Вандервурд, Джоссатис В одной из глав речь идет об объявлениях дружественных конструкций. Основная идея такова: template <typename T1, typename T2> void combine(T1, T2); class Mixer
C++ Какой паттерн подойдет, чтобы избежать длинных ветвлений? здравствуйте, есть код схематично такой: class CTest_base { public: CTest_base() : vec() {} virtual ~CTest_base() noexcept {} //something else protected: std::vector<int> vec; }; подробнее

Показать сообщение отдельно
gng
624 / 470 / 126
Регистрация: 08.09.2013
Сообщений: 1,219
22.07.2016, 23:13     Написать элегантнее класс для сложения больших чисел
Цитата Сообщение от xTr1m Посмотреть сообщение
и куча переменных
Количество переменных можно уменьшить, например, за счет лаконичности и гибкости сишки, в отличие от тех же плюсов. [/сарказм]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <string>
 
std::string li_add (const std::string &v1, const std::string &v2)
{
  std::string v;
  int c = 0;
  for (const char *p1= v1.c_str(), *p2= v2.c_str(); *p1 || *p2 ; ) {
    c+= *p1 + *p2 -'0'-'0';
    v.push_back ( c % 10 + '0');
    c /= 10;
    if (*p1) ++p1; if (*p2) ++p2;
  }
  if (c) v.push_back (c + '0');
  return v;
}
 
int main (int ac, char *av[]) {
  std::string v1 = std::string (av[1]);
  std::string v2 = std::string (av[2]);
  std::string res = li_add (std::string(v1.rbegin(), v1.rend()), std::string(v2.rbegin(), v2.rend()));
  std::cout << std::string (res.rbegin(), res.rend()) << std::endl;
  return 0;
}
Добавлено через 7 часов 57 минут
PS. Исправление ошибки в строке 9
C++
1
c+= *p1 && *p2 ? *p1 + *p2 -'0'-'0': *p1 + *p2 - '0';
 
Текущее время: 19:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru