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

Вычисленние произведения чисел - C++

Восстановить пароль Регистрация
 
ИраSunny
0 / 0 / 0
Регистрация: 27.08.2010
Сообщений: 16
09.03.2011, 21:12     Вычисленние произведения чисел #1
Вычислить произведение чисел кратных 7 на промежутке от 1 до 100
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2011, 21:12     Вычисленние произведения чисел
Посмотрите здесь:

C++ Вычисление произведения нечетных чисел от 1 до 10.
C++ Создать класс Pair (пара чисел); определить методы изменения полей и вычисления произведения чисел.
C++ Вычисление произведения четных чисел, меньших 15
Составить программу нахождения произведения нечётных чисел из [a;b] C++
C++ Представить n в виде произведения простых чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexcoder
1438 / 652 / 86
Регистрация: 03.06.2009
Сообщений: 3,283
Завершенные тесты: 1
09.03.2011, 21:55     Вычисленние произведения чисел #2
C++
1
2
3
4
5
6
7
int main()
{
int p=1;
for(int i=1;i<=100;i++)if(i%7==0)p*=i;
cout << p;
return 0;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.03.2011, 22:01     Вычисленние произведения чисел #3
alexcoder, да ну. И что, работает? И даже результат верный? Последнее вызывает сомнения...
alexcoder
1438 / 652 / 86
Регистрация: 03.06.2009
Сообщений: 3,283
Завершенные тесты: 1
09.03.2011, 22:13     Вычисленние произведения чисел #4
Во-первых, писал не проверяя.
Во-вторых, переборол лень и проверил - работает:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
int main()
{
double p=1;
for(int i=1;i<=100;i++)if(i%7==0)p*=i;
cout << p;
system("pause");
return 0;
}
Valerko
17 / 17 / 1
Регистрация: 30.11.2010
Сообщений: 164
09.03.2011, 22:13     Вычисленние произведения чисел #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
int main()
{
int a[100];
int i,pr=1;
for(i=0;i<100;i++)
    a[i]=(++i);
 
for(i=0;i<100;i++)
    if(a[i]%7==0)
        pr*=a[i];
cout<<pr;
return 0;
}
примерно так
(компилятора под рукой нет, так что не проверял)
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.03.2011, 22:17     Вычисленние произведения чисел #6
alexcoder, я же сказал, последнее вызывает сомнения... Это
C++
1
std::cout << "2 * 2 = 5!";
тоже работает, но оно же не гарантирует, что то, что увидит пользователь - верно.

Добавлено через 2 минуты
Ладно, раз метафоры не катят, попробуем так:
alexcoder, Valerko, слышали что-нибудь про переполнение? А про быстрый рост факториала? Здесь не факториал, но очень похоже.
alexcoder
1438 / 652 / 86
Регистрация: 03.06.2009
Сообщений: 3,283
Завершенные тесты: 1
09.03.2011, 22:20     Вычисленние произведения чисел #7
да, слышали, я не зря поставил double на результат, результат получается порядка 22 степени. В задании не указано использовать длинную арифметику
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.03.2011, 22:22     Вычисленние произведения чисел #8
Результат-то получается, только вот он будет неточным... Порядка 10^-16, если не ошибаюсь...

Добавлено через 29 секунд
Ну и первый ваш вариант был int, к чему я и придрался)))
alexcoder
1438 / 652 / 86
Регистрация: 03.06.2009
Сообщений: 3,283
Завершенные тесты: 1
09.03.2011, 22:25     Вычисленние произведения чисел #9
Первый раз писал вообще не думая, на лету. Второй раз прогнал через отладчик, результат получается ~10^22, там никак не получится отрицательная степень.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.03.2011, 22:28     Вычисленние произведения чисел #10
Я имел ввиду 10^16 точных позиций.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
09.03.2011, 22:44     Вычисленние произведения чисел #11
Цитата Сообщение от silent_1991 Посмотреть сообщение
И даже результат верный?
не факт, но шанс есть:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
/* ANSI C 99 */
#include <stdio.h>
#include <stdint.h>
 
int main(void){
    uint64_t i, p = 1;
    
    for ( i = 7; i < 100; i += 7 )
        p *= i;
    printf("%llu\n", p);
    
    return 0;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.03.2011, 22:49     Вычисленние произведения чисел #12
easybudda, неа, нету))) Правильный ответ: 59126328543388935628800

Добавлено через 1 минуту
Цитата Сообщение от silent_1991 Посмотреть сообщение
Я имел ввиду 10^16 точных позиций.
Я имел ввиду 16 позиций, естественно))
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
09.03.2011, 22:51     Вычисленние произведения чисел #13
Цитата Сообщение от silent_1991 Посмотреть сообщение
неа, нету
эх...
silent_1991
09.03.2011, 22:57
  #14

Не по теме:

Sosnooley, классно, я тоже умею считать количество позиций в числе...

easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
09.03.2011, 23:14     Вычисленние произведения чисел #15
silent_1991, русские не сдаются!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
/* ANSI C 99 */
#include <stdio.h>
 
int main(void){
    int i;
    long double p = 1.0;
    
    for ( i = 7; i < 100; i += 7 )
        p *= i;
    printf("%.0Lf\n", p);
    
    return 0;
}
Правда, результат немного другой получился, но аккурат 23 цифры...
Код
$ ./p7
59126328543388935626752
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2011, 23:16     Вычисленние произведения чисел
Еще ссылки по теме:

Запишите функцию для вычисления произведения целых чисел из диапазона от а до в. найдите произведение чисел, диапазон ввести с клавиатуры. В С++ C++
Определить произведения положительных и отрицательных чисел последовательности C++
C++ Найти количество положительных делителей произведения 10 чисел

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.03.2011, 23:16     Вычисленние произведения чисел #16
Ну, как я уже и говорил)) Ошибся чуток - 19 верных позиций)))
Yandex
Объявления
09.03.2011, 23:16     Вычисленние произведения чисел
Ответ Создать тему
Опции темы

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