鱼C论坛

 找回密码
 立即注册
查看: 531|回复: 1

[已解决]这个代码还有那种情况没考虑到

[复制链接]
发表于 2022-1-24 13:09:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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);

}
最佳答案
2022-1-24 18:51:56
用了一轮,123321这个回文数是有问题的
最后输出了 7
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-24 18:51:56 | 显示全部楼层    本楼为最佳答案   
用了一轮,123321这个回文数是有问题的
最后输出了 7
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 16:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表