int main(int argc, char* argv[])
{
cout << "A :" << left << setw(5) << A << endl;
cout << "Total times :" << left << setw(5) << A << endl << endl;
for(int i = 0; i < A * (TOTAL_TIMES + 1); ++i){
int total = 0;
Game(total, 0, i, 1);
cout << "For Sum :" << left << setw(5) << i << endl;
cout << "Number of ways : " << total << endl;
cout << endl;
}
return 0;
}
Output
A :6
Total times :6
For Sum :0
Number of ways : 0
For Sum :1
Number of ways : 0
For Sum :2
Number of ways : 0
For Sum :3
Number of ways : 0
For Sum :4
Number of ways : 0
For Sum :5
Number of ways : 0
For Sum :6
Number of ways : 0
For Sum :7
Number of ways : 0
For Sum :8
Number of ways : 0
For Sum :9
Number of ways : 0
For Sum :10
Number of ways : 1
For Sum :11
Number of ways : 10
For Sum :12
Number of ways : 55
For Sum :13
Number of ways : 220
For Sum :14
Number of ways : 715
For Sum :15
Number of ways : 2002
For Sum :16
Number of ways : 4995
For Sum :17
Number of ways : 11340
For Sum :18
Number of ways : 23760
For Sum :19
Number of ways : 46420
For Sum :20
Number of ways : 85228
For Sum :21
Number of ways : 147940
For Sum :22
Number of ways : 243925
For Sum :23
Number of ways : 383470
For Sum :24
Number of ways : 576565
For Sum :25
Number of ways : 831204
For Sum :26
Number of ways : 1151370
For Sum :27
Number of ways : 1535040
For Sum :28
Number of ways : 1972630
For Sum :29
Number of ways : 2446300
For Sum :30
Number of ways : 2930455
For Sum :31
Number of ways : 3393610
For Sum :32
Number of ways : 3801535
For Sum :33
Number of ways : 4121260
For Sum :34
Number of ways : 4325310
For Sum :35
Number of ways : 4395456
For Sum :36
Number of ways : 4325310
For Sum :37
Number of ways : 4121260
For Sum :38
Number of ways : 3801535
For Sum :39
Number of ways : 3393610
For Sum :40
Number of ways : 2930455
For Sum :41
Number of ways : 2446300
For Sum :42
Number of ways : 1972630
For Sum :43
Number of ways : 1535040
For Sum :44
Number of ways : 1151370
For Sum :45
Number of ways : 831204
For Sum :46
Number of ways : 576565
For Sum :47
Number of ways : 383470
For Sum :48
Number of ways : 243925
For Sum :49
Number of ways : 147940
For Sum :50
Number of ways : 85228
For Sum :51
Number of ways : 46420
For Sum :52
Number of ways : 23760
For Sum :53
Number of ways : 11340
For Sum :54
Number of ways : 4995
For Sum :55
Number of ways : 2002
For Sum :56
Number of ways : 715
For Sum :57
Number of ways : 220
For Sum :58
Number of ways : 55
For Sum :59
Number of ways : 10
For Sum :60
Number of ways : 1
For Sum :61
Number of ways : 0
For Sum :62
Number of ways : 0
For Sum :63
Number of ways : 0
For Sum :64
Number of ways : 0
For Sum :65
Number of ways : 0
Press any key to continue . . .
Solution
// FindNumOfWays.cpp : Defines the entry point for the console application.
//
#include <iostream>
#include <iomanip>
using namespace std;
#define A 6
#define TOTAL_TIMES 10
void Game(int &total, int s, int sum, int order)
{
if(A * (TOTAL_TIMES - order + 1) < sum - s || (TOTAL_TIMES - order + 1) > sum - s){
return;
}
if(order == TOTAL_TIMES)
{
for(int i = 1; i <= A; ++i){
if(s + i == sum){
total ++;
}
}
return;
}
for(int i = 1; i <= A; i++)
{
Game(total, i + s, sum, order + 1);
}
}
Problem
Given N dices.Each dice has A faces.
That means each dice has numbers from 1 to A.
Given Sum S,Find the number of ways to make the sum S if dices are rolled together.