请教
有个作业题目,是让输出方案的。有五个股票,要抛出几个,但是要满足一下五个条件。P[0]=!A[0]||A[1];
P[1]=(!A[1]&&A[2])||(!A[2]&&A[1]);
P[2]=(A[2]&&A[3])||(!A[2]&&!A[3]);
P[3]=A[3]||A[4];
P[5]=!A[4]||(A[0]&&A[1]);
总共要遍历2的5次方,即要五重循环,所以老师让用递归的方法实现
以下是我自己编的程序,语法是没错的。但是无打印结果,各位大大帮帮忙啊??谢谢了可以自己做个递归函数让我借鉴一下,拜求!!!!
#include "stdafx.h"
#include<iostream>
using namespace std;
const int SIZE=5;
void PS(int A[],int P[],int m)
{
int i=m;
bool j=1;
for(i=0;i<m;i++)
j=j&&P[i];
if(j)
{
for(i=0;i<SIZE;i++)
{
if(i==0)
cout<<"(";
if(A[i])
cout<<"A["<<i<<"]&&";
else cout<<"^A["<<i<<"]&&";
}
cout<<"\b\b"<<")";
cout<<"||";
}
}
void PP(int A[],int P[],int i) //A为五种待抛股票,P为5个需要满足的条件
{
for(A[i]=0;A[i]<=1;A[i]++)
{
if(A[i+1])
PP(A,P,i+1);
else PS(A,P,SIZE);
}
}
int main()
{
int A[SIZE+1],P[SIZE];
A[SIZE]=0;
P[0]=!A[0]||A[1];
P[1]=(!A[1]&&A[2])||(!A[2]&&A[1]);
P[2]=(A[2]&&A[3])||(!A[2]&&!A[3]);
P[3]=A[3]||A[4];
P[5]=!A[4]||(A[0]&&A[1]);
PP(A,P,0);
cout<<"\b\b";
}