• 【数学】【乱搞】【AOJ-588】月老使命


    Description
    cxlove曾经客串过月老(呵呵~~~只不过是给数字配对)。
    两个整数拼接成一个新数字之后,如果是3的倍数,则我们定义为幸福配对。
    现在有n个数字,月老的任务就是将其配对。
    现在请你帮助月老计算出最多能够有多少个幸福配对。
    例如:123和456可以拼接成123456,也可以组成456123。
    注意:每个数字只能用一次
    Input
    一个整数 T,表示有 T 组测试数据。(1<=T<=40)
    每组数据输入格式如下:
    对于每一组数据,输入如下:
    一个整数n (1<=n<=10000)
    接下来一行,n个整数 a1,a2,a3……an (1<=ai<=1000000000)
    Output
    对于每一组数据,输出一个整数,表示最多配成多少对
    Sample Input
    2
    3
    1 2 3
    4
    1 1 4 4

     
    Sample Output
    1
    0
    
     
     
    思路:
    能被3整除的数各位数字之和能被3整除,读入的数字都取余3,结果有0,1,2 三种可能 分别将个数记为a0,a1,a2
    余数为0只能和0配对,1只能和2配对
    则结果n=a0/2+min(a1,a2)
     
    参考代码:
    #include <stdio.h>
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int n;
            int a0=0,a1=0,a2=0;
            int k;
            scanf("%d",&n);
            int i;
            for(i=0;i<n;i++)
            {
                scanf("%d",&k);
                k=k%3;
                if(k==0)
                    a0++;
                if(k==1)
                    a1++;
                if(k==2)
                    a2++;
            }
            printf("%d
    ",a0/2+((a1>a2)?a2:a1));
        }
        return 0;
    }
  • 相关阅读:
    check事件
    JAVA----泛型
    JAVA集合的遍历for循环、Iterator迭代器
    JAVA 集合的定义分类
    JAVA面向对象---方法的重写与重载
    JAVA 面向对象---继承
    JAVA 面向对象
    JAVA ArrayList集合
    JAVA基础测试
    JAVA中 引用数据类型(类)
  • 原文地址:https://www.cnblogs.com/ahu-shu/p/3485202.html
Copyright © 2020-2023  润新知