zoukankan      html  css  js  c++  java
  • Integer Game(UVA11489)3的倍数

    K - Integer Game

    Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu

     

     

    题意:在n中取数字,使剩下的数是3的倍数,不能取则失败。

    思路:假设能使当前数为3的倍数,数字和必是3的倍数。

    要保持这样的状态。先对每一位对3取余,统计cnt[0],cnt[1],cnt[2]; 的个数。整个串是否能被3整除取决于ans=(cnt[1]+cnt[2]*2)%3;分情况讨论,假设能整除,则,推断cnt[0]的个数,假设是偶数个则T。否则S;假设不能整除。则,要特判cnt[ans]的个数是否大于0;<eg:11111>;大于0,则cnt[0]的个数为偶数个则S。否则T。等于0则T;

     

     

    一直坑在11111这样的情况!o(︶︿︶)o 唉

     

    转载请注明出处:寻找&星空の孩子

     

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int T,len,ca=1;
        scanf("%d",&T);
        char a[10005];
    
        while(ca<=T)
        {
            scanf("%s",a);
            len=strlen(a);
            int cnt[3]={0,0,0};
            for(int i=0;i<len;i++)
            {
                int tp=a[i]-'0';
                cnt[tp%3]++;
            }
            printf("Case %d: ",ca++);
            int mo=(cnt[1]+cnt[2]*2)%3;
            if(mo)
            {
                if(cnt[mo]>0)//11111
                {
                    if(cnt[0]&1) printf("T
    ");
                    else printf("S
    ");
                }
                else
                {
                    printf("T
    ");
                }
            }
            else
            {
                if(cnt[0]&1) printf("S
    ");
                else printf("T
    ");
            }
        }
        return 0;
    }
    


     

     

  • 相关阅读:
    python-观察者模式
    python-迭代器模式
    python-策略模式
    python-组合模式
    python-享元模式
    python-代理模式
    虚基类与虚继承
    指针与地址的关系
    大数相加和大数相乘以及打印从1到最大的n位数
    各种排序实现以及稳定性分析
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6898850.html
Copyright © 2011-2022 走看看