Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2011, 19:35   #1
boomeer
Форумчанин
 
Аватар для boomeer
 
Регистрация: 04.08.2010
Сообщений: 110
По умолчанию Длинка (Длинная арифметика)

Задача: ввести n, в первое число записать произведение от 1 до n, во второе от n+1 до 2*n. Числа длинные.

Код:
#include <vector>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    const int base = 1000*1000*1000;
    vector <int> a, b;
    int n;
    cin>>n; 
    for (int ii=n+1; ii!=(2*n)+1;++ii) {
        int carry = 0;
        for (size_t i=0; i<a.size() || carry; ++i) {
	        if (i == a.size())
		    a.push_back (0);
            long long cur = carry + a[i] * 1ll * ii;
              a[i] = int (cur % base);
              carry = int (cur / base);
             }    
        }
    while (a.size() > 1 && a.back() == 0) a.pop_back();
           
    for (int ii=1; ii!=n+1;++ii) {
        int carry = 0;
        for (size_t i=0; i<b.size() || carry; ++i) {
            if (i == b.size())
		    b.push_back (0);
	        long long cur = carry + b[i] * 1ll * ii;
	          b[i] = int (cur % base);
	          carry = int (cur / base);
            }
         }
    while (b.size() > 1 && b.back() == 0) b.pop_back();
    
    printf ("%d", a.empty() ? 0 : a.back());
    for (int i=(int)a.size()-2; i>=0; --i) printf ("%09d", a[i]);
    
    cout<<" ";
    
    printf ("%d", b.empty() ? 0 : b.back());
    for (int i=(int)b.size()-2; i>=0; --i) printf ("%09d", b[i]);
    system("PAUSE");
    return EXIT_SUCCESS;
}
Где не верно? выдает всегда 0 0
boomeer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Длинная арифметика Indira Общие вопросы C/C++ 2 24.01.2010 10:28
длинная арифметика Dimarik Общие вопросы C/C++ 1 16.09.2009 12:02
Длинная арифметика DmT Помощь студентам 2 06.10.2007 22:43