1 条题解
-
0
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
- 上传者