這題就是意思沒看懂,一開始以為只要個位數只要一個為0就能相加,沒想到到CF裡面提交第三組就過不了,才發現是要各個位上面都要有一個為0的時候才能相加。
題意很重要。。。。
AC代碼:
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int main() { int k,i,j,n,t,x,y,z,x1,y1,z1,p; int d[110],a[110]; while(scanf("%d",&k)!=EOF) { for(i = 0; i < k; i++) { scanf("%d",&d[i]); } sort(d,d+k); n = 1; a[0] = d[0]; for(i = 1; i < k; i++) { t = d[i]; x = t%10; //個位 t = t/10; y = t%10; //十位 t = t/10; z = t; //百位 for(j = 0; j < n; j++) { p = a[j]; x1 = p%10; //個位 p = p/10; y1 = p%10; //十位 p = p/10; z1 = p; //百位 if((x==0||x1==0)&&(y==0||y1==0)&&(z==0||z1==0)) { continue; } else { break; } } if(j == n) { a[n++] = d[i]; } } printf("%d\n%d",n,a[0]); for(j = 1; j < n; j++) { printf(" %d",a[j]); } printf("\n"); } return 0; }