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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 40, средняя оценка - 4.93
fortero
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 15
#1

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

08.03.2010, 03:53. Просмотров 6034. Ответов 8
Метки нет (Все метки)

Доброй ночи Господа!
Помогите мне как начинающему программисту умножить два крупных числа, очень надо, вот код (пример):
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++
Умножить два целых числа через добавление. Когда вводишь числа -2 и -3 выходит значение -2. Что мне надо сделать? #include&lt;stdio.h&gt; ...

Если массив квадратный, то умножить числа под побочной диагонали - C++
Ввести с клавиатуры массив. Если массив квадратный то умножить числа под побочной диагонали. Иначе найти макс элемент по модулю. Вот...

Умножить и вывести в 10 СС 2 числа в Двоичной и Восьмеричной системе (Пожалуйста, исправьте программу!) - C++
Задание таково: Даны 2 числа в Двоичной системе и Восьмеричной системе. Необходимо их умножить и вывести в 10 СС. Естественно учитывая...

Программа просит ввести число и умножить его на два, затем произведение умножить на два и т.д. - C++
3.Программа просит ввести число и умножить его на два, затем произведение умножить на два и т.д. выполнять эти операции пока произведение...

Умножить все четные числа двух массивов, и найти среди них самое большое значение - C++
Буду очень благодарен. Добавлено через 41 минуту два одноимерных массива

Все положительные числа массива умножить на 2, все отрицательные поделить на 2 - C++
Кто может помочь написать программу с такими входными условиями: Компьютер выводит рандомный массив 3х3 (от -бесконечности до...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
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
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
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++
Умножить два больших целых числа по правилу умножения “в столбик”. Для таких чисел вещественный тип неприемлем, а типа long int ...

Как умножить матрицы - C++
int A, В; найти С=АВ. я пришел к такой формуле, но не знаю как написать код

Как правильно умножить?? - C++
есть матрица { {-sin(fi),o,-cos(fi)}, {0,1,0}, {cos(fi),0,-sin(fi)}; } и есть вектор { {cos(-A)*cos(H)}, {sin(-A)*cos(H)}, ...

Умножить каждое число на первое отрицательное число. Добавив к каждому числу половину последнего отрицательного числа - C++
Здравствуйте! подскажите как реализовать на си++ &quot;Умножить каждое число на первое отрицательное число. Добавив к каждому числу половину...

Как умножить ряд на число? - C++
Подскажите пожалуйста, как умножить ряд чисел ( цикл) на заданное число ? Вот начало: #include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru