#include
int tot=0, a[3];
bool isok(int *a)
{
int t = a[0] + a[1]*2 + a[2]*5;
if (t==10) return(true);
else return(false);
}
void doit(int i)
{
if (i == 3)
{
if (isok(a))
{
tot++;
cout<
}else for(int j=0; j<11; j++)
{
a[i]=j;
doit(i+1);
}
}
int main(void)
{
doit(0);
return(0);
}
穷举法.
#include
using namespace std;
void print(int a, int b, int c)
{
if(3 == c)
{
c = 0;
b = b + 1;
if(6 == b)
{
b = 0;
a = a + 1;
if(11 == a)
{
return ;
}
}
}
if(10 == a * 1 + b * 2 + c * 5)
{
printf("%5d%5d%5d\n", a, b, c);
}
print(a, b, c + 1);
}
int main()
{
int a = 0, b = 0, c = 2;
printf("%5s%5s%5s\n\n", "1角", "2角", "5角");
print(a, b, c);
return 0;
}