有一角、二角、五角硬币若干,组成一元钱,用递归算法使用C++编程

共有10种结果,用C++递归算法编写程序
2024-11-21 17:59:43
推荐回答(3个)
回答1:

#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< cout<<"1角"< }
}else for(int j=0; j<11; j++)
{
a[i]=j;
doit(i+1);
}
}

int main(void)
{
doit(0);
return(0);
}

回答2:

穷举法.

回答3:

#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;
}