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

Как умножить числа… - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 40, средняя оценка - 4.93
fortero
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 15
08.03.2010, 03:53     Как умножить числа… #1
Доброй ночи Господа!
Помогите мне как начинающему программисту умножить два крупных числа, очень надо, вот код (пример):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
//
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
//
 
void main(void)
{
setlocale( LC_ALL,".1251" );
printf("HELLO...\n");
double a,b,c;
a=10000000;
b=1000;
c=a*b;
std::cout <<a<<" умножить на " << b <<" получется: "<< c <<"\n";
 
_getch();
}
Не пинайте ногами, я только учусь…
Задача моя состоит в том, что бы умножать миллионы на миллиарды, как это организовать что бы нормально отображалось, а не вот так:
Как умножить числа…
За ранние спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2010, 03:53     Как умножить числа…
Посмотрите здесь:

C++ Умножить каждое число на первое отрицательное число. Добавив к каждому числу половину последнего отрицательного числа
Как правильно умножить?? C++
C++ Как умножить матрицы
C++ Умножить и вывести в 10 СС 2 числа в Двоичной и Восьмеричной системе (Пожалуйста, исправьте программу!)
C++ Программа просит ввести число и умножить его на два, затем произведение умножить на два и т.д.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
08.03.2010, 05:33     Как умножить числа… #2
Цитата Сообщение от fortero Посмотреть сообщение
как это организовать что бы нормально отображалось, а не вот так:
А это разве не нормально? 1e+007 означает 10^7 = 10000000
а если 1e-007 соот. наоборот 10 ^(-7)
Ну а если очень уж хочется как обычно,то так:
C++
1
2
std::cout.precision(16);
std::cout <<a<<" умножить на " << b <<"получется: "<< c <<"\n";
если честно то в форме 1e+007 легче воспринимается , чем сидеть и нули считать...
fortero
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 15
08.03.2010, 05:39  [ТС]     Как умножить числа… #3
Спасибо огромное!
Согласен что не удобно, но мне нужно сделать для смертных людей, наглядность нужна!
Ещё раз спасибо!
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
08.03.2010, 05:40     Как умножить числа… #4
Пожалуйста
fortero
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 15
08.03.2010, 15:52  [ТС]     Как умножить числа… #5
Уважаемые Добрый День!
А вот как в таком случае сделать?
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
25
26
27
28
#include "stdafx.h"
//
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
//
 
void main(void)
{
setlocale( LC_ALL,".1251" );
printf("HELLO...\n");
double a,b,c;
a=64;
b=64;
c=a;
for(int r=1; r < b; r++)
{
a=a*b;
}
 
std::cout.precision(2048);
std::cout <<c<<" умножить на " << b <<" получется: "<< a <<"\n";
 
_getch();
}
Нужно 64 возвести в степень 64...
И я меняя параметер:
C++
1
std::cout.precision(2048);
Не могу добится результата, где я не прав?
Выводит, вот что:
Как умножить числа…
За ранние спасибо!
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
09.03.2010, 02:25     Как умножить числа… #6
Цитата Сообщение от fortero Посмотреть сообщение
Нужно 64 возвести в степень 64...
И я меняя параметер:
C++
1
std::cout.precision(2048);
64^64 слишком большое число, его только в экспонициальной форме можно вывести, в явной я сильно сомневаюсь,что существуют какие - то ф-ции которые это позволят.
C++
1
cout.precision(17);
больше 17 знаков,для отображения в явном виде, не понимает, поэтому нули и рисует

И для возведения в степень,можно и так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <cmath>
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
//
 
void main(void)
{
setlocale( LC_ALL,".1251" );
printf("HELLO...\n");
double a,b;
a=64;
b=64;
std::cout.precision(17);
std::cout <<" Возвести" << b <<" в "<< a << "получется:" << pow(a,b) << "\n";
_getch();
}
fortero
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 15
09.03.2010, 02:34  [ТС]     Как умножить числа… #7
Спасибо за пояснение
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
09.03.2010, 02:42     Как умножить числа… #8
Ошибочка небольшая:
C++
1
std::cout <<" Возвести" << b <<" в "<< a << "получется:" << pow(b,a) << "\n";
Хотя в данной задаче эт и не принципиально,но всё же =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2010, 03:28     Как умножить числа…
Еще ссылки по теме:

Циклы. Умножить два целых числа через добавление (C++) C++
Умножить два больших целых числа по правилу умножения "в столбик" C++
C++ Как умножить ряд на число?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.03.2010, 03:28     Как умножить числа… #9
Цитата Сообщение от vet Посмотреть сообщение
64^64 слишком большое число, его только в экспонициальной форме можно вывести, в явной я сильно сомневаюсь,что существуют какие - то ф-ции которые это позволят.
Тут нужно писать класс больших чисел, внутреннее представление которого - это строка, и перегружать операцию умножения.
Ну или воспользоваться готовыми решениями. Если верить википедии, то эта библиотека позволяет работать с числами любой длины.
Yandex
Объявления
09.03.2010, 03:28     Как умножить числа…
Ответ Создать тему
Опции темы

Текущее время: 03:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru