fjnu 1459 砝码称重

来源:互联网 发布:东方网络股票票价变了 编辑:程序博客网 时间:2024/04/29 23:15

Description

设有1g,2g,3g,5g,10g,20g的砝码各若干枚(其总重<=1000g),要求:可以称出多少种重量。

Input

输入方式:a1 a2 a3 a4 a5 a6
(表示1g砝码有a1个,2g砝码有a2个,......20g砝码有a6个)

Output

输出方式:Total=N
(N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况)

Sample Input

1 1 0 0 0 0

Sample Output

Total=3(表示可以称出1g,2g,3g三种不同的重量)
KEY:这题我用的是穷举,把所有的方案都给搞出来,用数组标记,因为数据量不大,所以蛮过了……
Source:

#include
<iostream>
using namespace std;

int m[]={0,1,2,3,5,10,20};

int main()
{
    
int n[7];
    
int p[7];
    
while(cin>>n[1]>>n[2]>>n[3]>>n[4]>>n[5]>>n[6])
    
{
        
int f[1005]={0};
        
for(p[1]=0;p[1]<=n[1];p[1]++)
            
for(p[2]=0;p[2]<=n[2];p[2]++)
                
for(p[3]=0;p[3]<=n[3];p[3]++)
                    
for(p[4]=0;p[4]<=n[4];p[4]++)
                        
for(p[5]=0;p[5]<=n[5];p[5]++)
                            
for(p[6]=0;p[6]<=n[6];p[6]++)
                            
{
                                
int t=p[1]*m[1]+p[2]*m[2]+p[3]*m[3]+p[4]*m[4]+p[5]*m[5]+p[6]*m[6];
                                f[t]
=1;
                            }

        
int count=0;
        
for(int i=1;i<=1000;i++)
            
if(f[i]) count++;
        cout
<<"Total="<<count<<endl;
    }

    
return 0;
}



原创粉丝点击