求助
查看原帖
求助
235996
FzoG楼主2022/7/9 08:46

为什么相同的遍历 ans的值不同

#include <iostream>
using namespace std;
int num[10005],a[15],b[15]={0,1,2,3,5,10,20};
int main()
{
	int max1=0;
	for(int i=1;i<=6;i++)
	{
		cin>>a[i];
		max1+=a[i]*b[i];
	}	
	num[0]=1;
	for(int i=1;i<=6;i++)
	{
		for(int j=1;j<=a[i];j++)
		{
			for(int x=max1;x>=0;x--)
			{
				if(num[x]==1)
				{
					num[x+b[i]]=1;
				}
			}
		}
	}
	for(int i=1;i<=max1;i++)
	{
		cout<<num[i]<<" ";
	}
	cout<<endl;
	int ans1=0,ans2=0,ans3=0;
	for(int i=1;i<=max1;i++)
	{
		if(num[i]==1);
		{
			ans1++;
		}
	}
	cout<<"Total="<<ans1<<endl;
	for(int i=1;i<=max1;i++)
	{
		if(num[i]==1)
		{
			ans2++;
		}
	}
	cout<<"Total="<<ans2<<endl;
	for(int i=1;i<=max1;i++)
	{
		if(num[i]==1);
		{
			ans3++;
		}
	}
	cout<<"Total="<<ans3<<endl;
	return 0;
}
2022/7/9 08:46
加载中...