Список вопросов
Как мне добавить решение на задач ?
14th February, 15:14
778
0
Что dsu(i) значит в коде "катание на коньках"
8th February, 18:16
176
1
Страна замов. Напишите программу на Python
10th December, 18:14
570
2
На листе клетчатой бумаги рисуют выпуклый 100-угольник с вершинами в узлах сетки. Какое наибольшее число диагоналей этого 100-угольника может идти по линиям сетки?
7th November, 15:29
410
0
Рассмотрим все прямоугольники, длины сторон которых выражены целым числом метров, и периметр которых (в метрах) численно равняется площади (в метрах квадратных). Найдите суммарную площадь всех таких, разных по размеру сторон, прямоугольников.Прямоугольники, отличающиеся порядком сторон, например, 10 * 20 и 20 * 10 считаем одинаковыми.
7th October, 20:57
863
0
Кто и за сколько может написать программу управления курсором?
2nd October, 23:48
581
3
Как авторизоваться на novafilm.tv при помощи cURL?
2nd October, 23:33
465
3
Верстка, position:relative создает пустое место
2nd October, 23:31
401
2
Что улучшить в переводе Apache Public License?
2nd October, 23:29
403
1
Формирование кода видео Вконтакте
2nd October, 23:23
506
3
IPad2 с 3G из Штатов?
2nd October, 23:18
455
5
А будет ли tcpdump видеть ack flood?
2nd October, 23:14
373
2
Альфа банк и странное смс мошенничество?
2nd October, 23:05
756
6
Софт для "ремонта" поврежденного h264 видео?
2nd October, 22:55
379
3
Scrapy — Python
2nd October, 22:54
388
4
Помощь с доставкой из США?
2nd October, 22:47
426
3
Создание stop-motion ролика
2nd October, 22:41
462
5
Решение задачи Длинное произведение с Acmp
Без пояснения   Просмотров: 111
Даны целые неотрицательные числа M и N. Требуется найти произведение этих чисел.
Код
#include #include using namespace std; string sumStr(string a,string b) { string r,tt; if(a.size() < b.size()) return sumStr(b,a); while(b.size() < a.size()) b.insert(0,"0"); int t = 0; for(int i = a.size() - 1; i >= 0; --i){ t+=a[i] + b[i] - 96; tt = t % 10 + 48; r.insert(0,tt); t /= 10; } if(t){ tt = t + 48; r.insert(0,tt); } return r; } string multStr(string a,string b) { string r = "0"; if(a.size() < b.size()) return multStr(b,a); int cc = 0; while(b.size() > 0){ int k = 0,tt,ttt = 1; for(int i = 0; b.size() > 0 && i < 5; ++i){ tt = (b[b.size() - 1] - 48) * ttt; k+=tt; ttt*=10; b.erase(b.size() - 1,1); } int t = 0; string conv, temp = ""; for(int i = a.size() - 1; i >= 0; --i){ t+=(a[i] - 48) * k; conv = t % 10 + 48; if (k) temp.insert(0,conv); t /= 10; } if(t){ while(t){ conv = t % 10 + 48; t /= 10; temp.insert(0,conv); } } for(int i = 0; i < cc; ++i) temp.insert(temp.size(),"00000"); r = sumStr(r,temp); ++cc; } return r; } int main() { string a,b; cin >> a >> b; string str = multStr(a,b); cout << str << endl; return 0; }
 
 
 
 
 
Автор: Администратор
