此次课程为最后一节课!!!
3的倍数 - 题目详情 - 友爸信奥 (youba.club)
第一步:分析特征
x+y=n
(x*y)%3=0
说明x和y当中,至少有一个是3的倍数
如果x和y都是3
的倍数,那么x+y是不是3的倍数?
- n如果是
3
的倍数?说明x和y必然都是3的倍数 - 如果不是
3
的倍数?说明x和y当中,有一个不是3的倍数
第二步:观察数据规模/数据范围1≤n≤1017
要用数学计算,代替循环
第三步:举例小的数字,列出所有结果
- 样例的例子,必须要全部推导过
- 6:
3+3
只有1种可能性 - 10:6种可能性
3+7
->7+3
6+4
->4+6
9+1
->1+9
- 6:
- 如果有可能的话,再列举其他小样例(自己造)
- 9: 2种可能性
3+6
->6+3
9+0
- 12 : 3种可能性
- 3+9 -> 9+3
- 6+6->6+6
- 9: 2种可能性
解法:
首先考虑n不是3的倍数:假设x是3的倍数,求其所有可能性,然后乘以2(y是3的倍数)。就是要看n当中,包含几个3.(ans = n/3*2)
其次考虑n是三的倍数:ans = n/3*2
27:ans&#