자연수 N과 M을 입력받아서 주사위를 N번 던져서 나온 눈의 합이 M이 나올 수 있는 모든 경우를 출력하는 프로그램을 작성하시오. 단, N은 10 이하의 정수이다.
#include <stdio.h>
#include <stdlib.h>
#define nmax 10
int dice(int n,int m)
{
static int a[nmax];
int j=0;
int sum=0;
for(j=nmax-1;j>=nmax-n;j--) sum=sum+a[j]+1;
if (m==sum)
{
for(j=nmax-n;j<nmax;j++) printf("%d",a[j]+1);
printf(" : %d\n", sum);
}//if sum
a[nmax-1]=a[nmax-1]+1;
for(j=nmax-1;j>nmax-n;j--)
{
if(a[j]==6)
{
a[j-1]=a[j-1]+1;
if(a[nmax-n]==6) return 0;
a[j]=0;
}//if
}//for
dice(n, m);
}
int main(void)
{
int n,m;
printf("자연수 N과 M을 입력하시오. (단, N은 10이하의 정수입니다.)\n(N은 주사위를 던지는 횟수이고, M은 주사위 눈의 합입니다.)\n");
scanf("%d %d",&n,&m);
dice(n,m);
system("pause");
return 0;
}