|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,比如12321。
现在给出n个一位整数数字,请问:从这n个数字中任选一些数字,能拼成的最长回文数 是多少位?
输入
输入一个整数n(1<=n<=100,表示随后将输入的数字个数)。
然后输入n个一位非负整数数字,即其取值范围为[0, 9]。
输出
输出能拼成的最长回文数的位数。
#include <stdio.h>
int main() {
int a[100],b[100]= {0};
int n;
scanf("%d",&n);
for(int i=0; i<n; i++) {
scanf("%d",&a[i]);
b[a[i]]++;
}
int sum=0;
for(int i=0; i<10; i++) {
if(b[i]!=1) {
if(b[i]%2!=0) {
b[i]=b[i]-1;
sum+=b[i];
} else
sum+=b[i];
}
}
printf("%d",(sum%2)?sum:sum+1);
}
用了一轮,123321这个回文数是有问题的
最后输出了 7
|
|