1 条题解

  • 0
    @ 2024-12-22 11:04:02

    C :

    #include<stdio.h>
    void main()
    {
    	int i,x,x1,x2,x3,i1,j1,j,k,n,t,t1,c,a[11];
    	while(scanf("%d",&n)!=EOF){
    	t1=0;
    	for(i=0;i<n;i++)
    		scanf("%d",&a[i]);
    	for(i=0;i<n;i++)
    		for(j=0;j<n;j++)
    			for(k=0;k<n;k++)
    			{
    				t=a[i]*100+a[j]*10+a[k];
    				for(i1=0;i1<n;i1++)
    					for(j1=0;j1<n;j1++)
    					{
    						c=0;
    						x1=t*a[i1];
    						x2=t*a[j1];
    						x3=x1*10+x2;
    						if(x1<100||x2<100||x3<1000||x1>=1000||x2>=1000||x3>=10000)continue;
    						for(x=0;x<n;x++)
    							if(x1/100==a[x]){c++;break;}
    						if(c!=1)continue;
    						for(x=0;x<n;x++)
    							if(x1%10==a[x]){c++;break;}
    						if(c!=2)continue;
    						for(x=0;x<n;x++)
    							if((x1/10%10)==a[x]){c++;break;}
    						if(c!=3)continue;
    						for(x=0;x<n;x++)
    							if(x2/100==a[x]){c++;break;}
    						if(c!=4)continue;
    						for(x=0;x<n;x++)
    							if(x2%10==a[x]){c++;break;}
    						if(c!=5)continue;
    						for(x=0;x<n;x++)
    							if((x2/10%10)==a[x]){c++;break;}
    						if(c!=6)continue;
    						for(x=0;x<n;x++)
    							if(x3/1000==a[x]){c++;break;}
    						if(c!=7)continue;
    						for(x=0;x<n;x++)
    							if(x3%10==a[x]){c++;break;}
    						if(c!=8)continue;
    						for(x=0;x<n;x++)
    							if((x3/10%10)==a[x]){c++;break;}
    						if(c!=9)continue;
    						for(x=0;x<n;x++)
    							if((x3/100%10)==a[x]){c++;break;}
    						if(c!=10)continue;
    						t1++;
    					}
    			}
    	printf("%d\n",t1);
    	}
    }
    

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    #define maxn 12
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF){
            int a[10]={0};
            int b[maxn];
            for (int i=0;i<n;i++){
                scanf("%d",&b[i]);
                a[b[i]]=1;
            }
            int ans=0;
            for (int i1=0;i1<n;i1++){
                for (int i2=0;i2<n;i2++){
                    for (int i3=0;i3<n;i3++){
                        for (int s1=0;s1<n;s1++){
                            for (int s2=0;s2<n;s2++){
                                int aaa=b[i1]*100+b[i2]*10+b[i3];
                                int ass=aaa*b[s2]; if (ass>=1000) continue;
                                if (a[ass/100]&&a[ass%10]&&a[(ass/10)%10]){
                                    int add=aaa*b[s1]; if (add>=1000) continue;
                                    if (a[add/100]&&a[add%10]&&a[(add/10)%10]){
                                        int sss=add*10+ass;
                                        if (sss>=10000) continue;
                                        if (a[sss/1000]&&a[sss%10]&&a[(sss/10)%10]&&a[(sss/100)%10]){
                                            ans++;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            printf("%d\n",ans);
        }
        return 0;
    }
    
    
    • 1

    信息

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