Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
galaktoid
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 5
1

Посчитать сумму произведений всех N-значных чисел

23.05.2016, 14:35. Просмотров 984. Ответов 9
Метки нет (Все метки)

Всем добрый день!

Есть задание - требуется вычислить сумму произведений цифр каждого N-значного числа. При этом следует учесть, что если есть 0, то произв = 0. Пример для N=3:
S=1*0*0+1*0*1+...+9*9*9=91125

Мой код:
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
29
30
31
32
33
#include <iostream>
#include <string>
#include <cmath>
 
using namespace std;
//функция считает произведение цифр числа
int func1(int CH, int Size) {
    int t1, t2, t3;
    t3=1;
    t1=CH;
    for (int i=1; i<=Size; i++) {
        t2=t1%10;
        t1=floor(t1/10);
        t3=t2*t3;
        //cout<<t3<<"  ";
    }
    return t3;
}
 
//здесь ввод/вывод значений, и сложение произведений цифр чисел.
int main()
{
    setlocale(LC_ALL, "Russian");
    float N, s;
    s=0;
    cout<<"Введи N: ";
    cin>>N;
    for(int i=pow(10, N-1); i<=(pow(10, N))-1; i++) {
        //func1(i, N)
        s=s+func1(i, N);
    }
    cout<<s;
}

Код работает, но есть проблема: по заданию N<1000 (проверку еще не написал, лень было). У меня после N=7 работать не хочет, т.к., подозреваю, число слишком большое. Как быть?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2016, 14:35
Ответы с готовыми решениями:

Найти сумму всех n-значных чисел 1<=n<=4
Найти сумму всех n-значных чисел 1&lt;=n&lt;=4 может я тупой или от голода не могу...

Цикл с параметром: найти сумму всех n-значных чисел, кратных k
Помогите составить программу. Условие: Найти сумму всех n-значных чисел,...

Вычислить сумму произведений всех троек соседних чисел массива
Дан одномерный числовой массив A из n элементов. Вычислить сумму произведений...

В заданном числовом массиве вычислить сумму произведений всех троек соседних чисел.
7.9.1. Помогите, пожалуйста, решить задачу в С++. \В заданном числовом...

Дано двумерный массив целых чисел. Найти сумму произведений всех строк
Дано двумерный массив целых чисел. Найти сумму произведений всех строк. В чем...

9
dcshowcousa
26 / 18 / 97
Регистрация: 22.10.2015
Сообщений: 303
23.05.2016, 15:25 2
galaktoid, используй unsigned long long
0
GameDad
1 / 1 / 1
Регистрация: 27.01.2016
Сообщений: 9
23.05.2016, 15:26 3
Программа работает с N>=7, дело в том, что подсчет чисел происходит очень долго.
Для перестраховки я бы посоветовал инициализировать переменную s как double
0
_Ivana
3236 / 1867 / 235
Регистрация: 01.03.2013
Сообщений: 5,111
Записей в блоге: 5
23.05.2016, 15:31 4
Цитата Сообщение от galaktoid Посмотреть сообщение
Как быть?
Разумеется, придумать и реализовать другой алгоритм, а не брутфорс.
0
galaktoid
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 5
23.05.2016, 16:04  [ТС] 5
Цитата Сообщение от _Ivana Посмотреть сообщение
придумать и реализовать другой алгоритм
Я попробую конечно, но с полетом фантазии у меня туго)
0
_Ivana
3236 / 1867 / 235
Регистрация: 01.03.2013
Сообщений: 5,111
Записей в блоге: 5
23.05.2016, 16:23 6
Работаем, Страуструп, работаем! Лучше день потерять, а потом за час долететь! (С)
0
avgoor
1042 / 610 / 157
Регистрация: 05.12.2015
Сообщений: 1,735
23.05.2016, 16:46 7
Цитата Сообщение от galaktoid Посмотреть сообщение
Я попробую конечно, но с полетом фантазии у меня туго)
Фантазия не при чем. Это школьная арифметика. Ответ: S=45^N
0
galaktoid
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 5
23.05.2016, 17:08  [ТС] 8
Цитата Сообщение от avgoor Посмотреть сообщение
Ответ: S=45^N
до этого я уже дошел сам, но ответ при N=1000 все равно получается гигантский, и я не знаю, куда запихнуть его, в long long не влезет.
0
avgoor
1042 / 610 / 157
Регистрация: 05.12.2015
Сообщений: 1,735
23.05.2016, 17:17 9
Цитата Сообщение от galaktoid Посмотреть сообщение
но ответ при N=1000 все равно получается гигантский
А в условии что сказано? Можно подобрать такое N, что точный ответ не влезет во всю доступную человечеству память. Если важна отностиельная точность - используйте double, если абсолютная (с точностью до 1) - длинную арифметику.
0
lawr
374 / 268 / 478
Регистрация: 09.05.2014
Сообщений: 769
23.05.2016, 18:55 10
сделай число как массив цифр.
0
23.05.2016, 18:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2016, 18:55

Найти сумму всех n-значных чисел (1 ≤ n ≤ 4)
//Я новичок в этом, поэтому подскажите #include &lt;iostream&gt; #include &lt;cmath&gt;...

Дана последовательность чисел. Посчитать сумму цифр десятичной записи всех отрицательных чисел
Дана последовательность чисел. Посчитать сумму цифр десятичной записи всех...

Посчитать сумму цифр всех целых чисел 1 до n
[ход решения в gcc


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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