Упражнения C ++: подсчитывает количество комбинаций, в которых сумма цифр равна заданному числу.
C ++ Basic: упражнение 72 с решением
Напишите программу на C ++, которая считывает n цифр, выбранных от 0 до 9, и считает количество комбинаций, в которых сумма цифр равна заданному числу. Не используйте одни и те же цифры в комбинации.
Например, комбинации, где n = 2 и s = 5, следующие:
0 + 5 = 5
1 + 4 = 5
3 + 2 = 5
Пример решения :
Код C ++:
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
const int MAX_NUM = 9;
const int MAX_NOS = 9;
const int MAX_SUM_VAL = 100;
int n, s, dp[MAX_NOS + 1][MAX_NUM + 1][MAX_SUM_VAL + 1];
long long SUM_VAL = 0;
memset(dp, 0, sizeof(dp));
for (int i = 0; i < MAX_NUM; i++)
{
dp[1][i][i] = 1;
}
for (int N = 2; N <= MAX_NOS; N++)
{
for (int i = 1; i <= MAX_NUM; i++)
{
for (int j = 1; j <= MAX_SUM_VAL; j++)
{
if (j - i >= 0)
{
for (int k = 0; k < i; k++)
{
dp[N][i][j] += dp[N - 1][k][j - i];
}
}
}
}
}
cin >> n >> s;
SUM_VAL = 0;
for (int i = 0; i <= MAX_NUM; i++)
{
SUM_VAL += dp[n][i][s];
}
cout << "Number of digits " << n << " and Sum =" << s;
cout << "\nNumber of pairs: " <<SUM_VAL << endl;
return 0;
}
Пример вывода:
Пример ввода: 2 5 Количество цифр 2 и сумма = 5 Количество пар: 3
Блок - схема:
Редактор кода C ++:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на C ++, которая читает последовательность целых чисел и печатает значения режима последовательности. Число целых чисел больше или равно 1 и меньше или равно 100.
Далее: Напишите программу на C ++, которая принимает цену за единицу продаж и количество продаж различных товаров и вычисляет общую сумму продаж и среднее количество продаж. Все входные значения должны быть больше или равны 0 и меньше или равны 1000, а количество пар единиц продаж и количества продаж не должно превышать 100. Если в среднем количестве продаж встречается дробь, округлите первую десятичную дробь место.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования