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 唉

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

     1 #include<stdio.h>
     2 #include<string.h>
     3 int main()
     4 {
     5     int T,len,ca=1;
     6     scanf("%d",&T);
     7     char a[10005];
     8 
     9     while(ca<=T)
    10     {
    11         scanf("%s",a);
    12         len=strlen(a);
    13         int cnt[3]={0,0,0};
    14         for(int i=0;i<len;i++)
    15         {
    16             int tp=a[i]-'0';
    17             cnt[tp%3]++;
    18         }
    19         printf("Case %d: ",ca++);
    20         int mo=(cnt[1]+cnt[2]*2)%3;
    21         if(mo)
    22         {
    23             if(cnt[mo]>0)//11111
    24             {
    25                 if(cnt[0]&1) printf("T
    ");
    26                 else printf("S
    ");
    27             }
    28             else
    29             {
    30                 printf("T
    ");
    31             }
    32         }
    33         else
    34         {
    35             if(cnt[0]&1) printf("S
    ");
    36             else printf("T
    ");
    37         }
    38     }
    39     return 0;
    40 }
  • 相关阅读:
    226. 翻转二叉树
    LeetCode 1660.纠正二叉树(Medium)
    814. 二叉树剪枝
    110. 平衡二叉树
    HTTPS原理浅析
    MySQL知识网络
    制作SSL证书(签发免费证书)
    Redis高可用三(Redis Cluster集群)
    Redis高可用二( 哨兵sentinel)
    Redis高可用一(主从)
  • 原文地址:https://www.cnblogs.com/yuyixingkong/p/4567281.html
Copyright © 2011-2022 走看看