Список вопросов
Как мне добавить решение на задач ?
14th February, 15:14
733
0
Что dsu(i) значит в коде "катание на коньках"
8th February, 18:16
126
1
Страна замов. Напишите программу на Python
10th December, 18:14
521
2
На листе клетчатой бумаги рисуют выпуклый 100-угольник с вершинами в узлах сетки. Какое наибольшее число диагоналей этого 100-угольника может идти по линиям сетки?
7th November, 15:29
366
0
Рассмотрим все прямоугольники, длины сторон которых выражены целым числом метров, и периметр которых (в метрах) численно равняется площади (в метрах квадратных). Найдите суммарную площадь всех таких, разных по размеру сторон, прямоугольников.Прямоугольники, отличающиеся порядком сторон, например, 10 * 20 и 20 * 10 считаем одинаковыми.
7th October, 20:57
816
0
Кто и за сколько может написать программу управления курсором?
2nd October, 23:48
528
3
Как авторизоваться на novafilm.tv при помощи cURL?
2nd October, 23:33
410
3
Верстка, position:relative создает пустое место
2nd October, 23:31
350
2
Что улучшить в переводе Apache Public License?
2nd October, 23:29
354
1
Формирование кода видео Вконтакте
2nd October, 23:23
452
3
IPad2 с 3G из Штатов?
2nd October, 23:18
401
5
А будет ли tcpdump видеть ack flood?
2nd October, 23:14
322
2
Альфа банк и странное смс мошенничество?
2nd October, 23:05
699
6
Софт для "ремонта" поврежденного h264 видео?
2nd October, 22:55
329
3
Scrapy — Python
2nd October, 22:54
339
4
Помощь с доставкой из США?
2nd October, 22:47
371
3
Создание stop-motion ролика
2nd October, 22:41
410
5
Решение задачи Деление длинного числа на короткое с Меньшиков
Без пояснения   Просмотров: 95
Даны целое неотрицательное число M и целое положительное число N. Найти M div N и M mod N.
Код
#include #include #include #include #include using namespace std; const int len = 7; char* param = "%0.7d"; const int osn = pow(10.0,len); const int max_len = 10000; struct BigInt{ long long digits[max_len]; int amount; BigInt() { memset(digits,0,sizeof(digits)); amount = 1; } void input() { string str; cin>>str; int pos = 0; for (int i=str.size()-1;i>=0;i-=len) { int start = i - (len - 1); if (start<0) start = 0; digits[pos++] = atoi(str.substr(start,i - start + 1).c_str());; } amount = pos; } void output() { printf("%d",digits[amount-1]); for (int i=amount-2;i>=0;i--) printf(param,digits[i]); } }; void DivMod(const BigInt &a,const int &n, BigInt &div, int &mod) { long long r = 0; for (int i=a.amount-1;i>=0;i--) { long long tmp = (r*osn + a.digits[i]); div.digits[i] = tmp/n; r = tmp - div.digits[i]*n; } int pos = a.amount; while (pos !=0 && !div.digits[pos]) pos--; div.amount = pos+1; mod = r; } int main(){ BigInt a,div; int n,mod; a.input(); cin>>n; DivMod(a,n,div,mod); div.output(); cout<
 
 
 
 
 
Автор: Администратор
