P2347 砝码称重

题目描述

设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),

输入输出格式

输入格式:

 

输入方式:a1 a2 a3 a4 a5 a6

(表示1g砝码有a1个,2g砝码有a2个,…,20g砝码有a6个)

 

输出格式:

 

输出方式:Total=N

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

 

输入输出样例

输入样例#1:
1 1 0 0 0 0
输出样例#1:
Total=3

 

#include<cstdio>

int c[8],k,b[8];
bool a[1002];

int main() 
{
    for(int i=1;i<=6;i++)
	scanf("%d",&b[i]); 
    for(c[1]=0; c[1]<=b[1]; c[1]++)
        for(c[2]=0; c[2]<=b[2]; c[2]++)
            for(c[3]=0; c[3]<=b[3]; c[3]++)
                for(c[4]=0; c[4]<=b[4]; c[4]++)
                    for(c[5]=0; c[5]<=b[5]; c[5]++)
                        for(c[6]=0; c[6]<=b[6]; c[6]++)
                            if(c[1]==0&&c[2]==0&&c[3]==0&&c[4]==0&&c[5]==0&&c[6]==0);
                            else if(a[c[1]+c[2]*2+c[3]*3+c[4]*5+c[5]*10+c[6]*20]==0) 
							{
                                a[c[1]+c[2]*2+c[3]*3+c[4]*5+c[5]*10+c[6]*20]=1;
                                k++;
                            }
    printf("Total=%d",k);
    return 0;
}

  

posted @ 2017-07-19 20:09  ioioioioioio  阅读(175)  评论(0编辑  收藏  举报