分析:难度大致为全红,思路比较好想
T1
两种方法:
1.开动脑筋想最多“O"
据题意,数字 8 中有 2 个 "O",是最多的,所以只要每位都放8即可,答案是88
2.暴力枚举1~99
依次判断即可,但较为麻烦
T2
循环,判断是前一个数的约数就将答案+1
T3
只需将每个数相加,减去m后再乘20即可
T4
注意:读入字符串要用GETLINEGETLINEGETLINE函数
记录遇到的空格数量为numnumnum,循环判断每个字符是否是空格。若是,则输出char(num+65)char(num+65)char(num+65)并$(num+1)%26 $;否则输出原先的字符
注:num+65是因为'A'的ascall码是65
T5
记录一下a[]中1和-1的个数,在进行判断。
1.如果r−l+1r-l+1r−l+1是奇数,则无论如何都无法满足和为0,输出"sad"
2.如果1的个数或-1的个数小于r−l+12\frac{r-l+1}{2}2r−l+1 ,则也无法满足,输出"sad"
3.否则输出“happy”
T6
考察排序的知识和进制转换的知识
1.进制转换
不断将要转换的数取÷8的余数存入ans,再将此数÷8,以此类推
2.排序
1.先按照 BiB_iBi 的最低位从大到小排序
2.如果最低位的数一样,那么就按照 BiB_iBi 进行从小到大排序
详见cmp函数