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

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

Войти
Регистрация
Восстановить пароль
 
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
#1

Произведение двух чисел, не превосходящих 10^9 - C++

10.01.2013, 23:33. Просмотров 475. Ответов 8
Метки нет (Все метки)

Найти произведение двух чисел, не превосходящих 10^9.
Из INPUT.TXT считываются 2 числа, в OUTPUT.TXT записывается произведение.
Что я делаю не так? Как сделать правильнее?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <fstream>
using namespace std;
 
unsigned long int a,b;
 
int main(){
ifstream in("INPUT.TXT");
in >> a;
in >> b;
in.close();
ofstream out("OUTPUT.TXT");
out << a*b;
out.close();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 23:33     Произведение двух чисел, не превосходящих 10^9
Посмотрите здесь:

C++ Найти произведение двух наибольших из трех введенных с клавиатуры чисел
Найти произведение двух наибольших и двух наименьших отрицательных нечетных чисел массива C++
Найти произведение двух наибольших отрицательных чисел массива C++
Найти произведение двух наибольших четных чисел массива C++
Сумма, произведение, разность, и частное от деления двух чисел C++
Вычислить произведение двух чисел C++
Вычислить сумму и произведение двух вещественных чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
1922 / 1188 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.01.2013, 23:37     Произведение двух чисел, не превосходящих 10^9 #2
109 * 109 = 1018
В unsigned int это не влезет.
Используйте [unsigned] long long
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
10.01.2013, 23:47  [ТС]     Произведение двух чисел, не превосходящих 10^9 #3
Цитата Сообщение от diagon Посмотреть сообщение
109 * 109 = 1018
В unsigned int это не влезет.
Используйте [unsigned] long long
Ммм... спасибо. А можете подсказать ради интереса, как работает unsigned и как работает long. Сколько раз можно использовать long? А зачем тогда тут unsigned? И зачем оно вообще нужно?

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <fstream>
using namespace std;
 
unsigned long long int a,b;
 
int main(){
ifstream in("INPUT.TXT");
in >> a;
in >> b;
in.close();
ofstream out("OUTPUT.TXT");
out << a*b;
out.close();
return 0;
}
Вот так тоже "Wrong answer". В чем проблема?
diagon
Higher
1922 / 1188 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.01.2013, 23:50     Произведение двух чисел, не превосходящих 10^9 #4
Цитата Сообщение от florgas Посмотреть сообщение
Вот так тоже "Wrong answer". В чем проблема?
Возможно, там есть отрицательные числа. Так что лучше уберите unsigned.

Цитата Сообщение от florgas Посмотреть сообщение
Сколько раз можно использовать long?
Максимум 2 раза.


Цитата Сообщение от florgas Посмотреть сообщение
А зачем тогда тут unsigned?
Тут - незачем.
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
10.01.2013, 23:54  [ТС]     Произведение двух чисел, не превосходящих 10^9 #5
Без unsigned тоже "Wrong answer".
diagon
Higher
1922 / 1188 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.01.2013, 23:58     Произведение двух чисел, не превосходящих 10^9 #6
Ну... попробуйте вывести перевод строки.
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
11.01.2013, 00:08  [ТС]     Произведение двух чисел, не превосходящих 10^9 #7
Цитата Сообщение от diagon Посмотреть сообщение
Ну... попробуйте вывести перевод строки.
0 эффекта. Тут есть решение, но он только на С, Паскале, JAVA и Basic'e.
Вот решение на С. Как его переделать под С++? В чем все же моя ошибка. По прежнему выдает "Wrong answer".
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
long a,b;
 
int main(){
  freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);
  scanf("%ld%ld",&a,&b);
  printf("%ld",a+b);
  return 0;
}
diagon
Higher
1922 / 1188 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.01.2013, 00:11     Произведение двух чисел, не превосходящих 10^9 #8
Цитата Сообщение от florgas Посмотреть сообщение
a+b
Вас ничего не смущает?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2013, 00:14     Произведение двух чисел, не превосходящих 10^9
Еще ссылки по теме:

C++ Найти произведение двух чисел
C++ Рекурсивно вычислить сумму квадратов тех чисел, не превосходящих двух
Найти произведение трех целых чисел или сумму двух C++
C++ Найти произведение двух наименьших из трёх заданных чисел
Произведение всех цифр двух чисел C++

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

Или воспользуйтесь поиском по форуму:
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
11.01.2013, 00:14  [ТС]     Произведение двух чисел, не превосходящих 10^9 #9
Пхах... пхаха... Смешно. Видимо то, что сейчас уже за полночь влияет как-то.
Спасибо

Добавлено через 2 минуты
Ушел спать
Yandex
Объявления
11.01.2013, 00:14     Произведение двух чисел, не превосходящих 10^9
Ответ Создать тему
Опции темы

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