11年湖南省赛 B counting game
比赛的时候这道题卡了大半时间,虽然说其他题目也挺多不会的。昨天一直觉得自己代码是没问题的,今早起来想想,可能是题意读错了,特意去看了一遍中文题意,恍然大悟。
第一:题意为只要 “含7的,或是7的倍数” 就拍手,比赛时被看成了尾数是7就拍手。
第二:今早交一次又WA了,原因是判断每位数是不是7的地方出了问题。
本人原码: if(num % 7 == 0 || num % 10 == 7 || num / 10 == 7 || num / 100 == 7 || num / 1000 == 7 || num / 10000 == 7 || num / 100000 == 7)
显然错了,比如171就过不了。
正确代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 bool IsContainSeven(int i){ 2 3 while( i ){ 4 5 if(i % 10 == 7) return true; 6 7 i /= 10; 8 9 } 10 11 return false; 12 13 }
估计这道题就这两个地方卡人了吧,其他部分模拟即可,不再赘述。
昨天说等知道这道题的正解后要把这道题怎样怎样的,其实能做的就是把它A了,心情稍有舒畅。