1 条题解

  • 0
    @ 2025-2-14 21:20:41

    C :

    #include"stdio.h"
    int main()
    {
    	int a[6],i,j,sum,s=0,c[6]={1,2,3,5,10,20},f[1001],k=0;
    	for(i=0;i<6;i++) {
    	scanf("%d",&a[i]);
    	s+=a[i]*c[i];
    	}
        f[0]=1;
    	for(i=0;i<6;i++)
    	  for(j=a[i];j>0;j--)
    	       for(sum=s;sum>=c[i];sum--) if(f[sum-c[i]])  f[sum]=1;
    	for(i=1;i<=s;i++)  if(f[i]==1) k++;
    	printf("Total=%d",k);
    	return 0;
    }
    
    

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    using namespace std;
    unsigned char a[1001]={0};
    
    int a1,a2,a3,a4,a5,a6;
    
    
    int main()
    {
        a[0]=1;
        int i,j,k,l,m,n,count;
        count =0;
        scanf("%d%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5,&a6);
        for (i = 0; i <= a1; i++)
            for (j = 0; j <= a2; j++)
                for (k = 0; k <= a3; k++)
                    for (l = 0; l <= a4; l++)
                        for (m = 0; m <= a5; m++)
                            for (n = 0; n <= a6; n++)
                                if (!a[i+2*j+3*k+l*5+m*10+20*n]) {
                                    a[i+2*j+3*k+l*5+m*10+20*n]=1;
                                    count++;
                                }
                    printf("Total=%d",count);
    
    
    return 0;
    }
    
    

    Pascal :

    const a:array[1..6]of longint=(1,2,3,5,10,20);
    var
       i,j,s,k,ans:longint;
       b,p:array[0..10000]of longint;
    begin
     fillchar(p,sizeof(p),0);
     s:=0;
     for i:=1 to 6 do
      begin
       read(b[i]);
       s:=s+b[i]*a[i];
      end;
     p[0]:=1;
     for i:=1 to 6 do
      for j:=1000 downto a[i]do
       for k:=0 to b[i]do
        if(j-k*a[i]>=0)and(p[j-k*a[i]]=1)then p[j]:=1;
     ans:=0;
     for i:=1 to 1000 do if p[i]=1 then inc(ans);
     writeln('Total=',ans);
    end.
    
    • 1

    信息

    ID
    809
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者