解题思路:
此题可以用三个for循环直接求解(即蛮力法),但是求出来之后会显示时间超时,看了一下别人的方法,可以直接用公式求解,即:F(x)=x/4 + (x+1)/2
此公式求出来是小于x的满足条件的数的个数,但是这个公式我也不知道是怎么推出来的,而且我觉得这种题不具有通用性,所以只需要记住公式就行。
注意事项:
参考代码:
#include<iostream>
using namespace std;
int main()
{
int L, R;
int sum;
cin >> L >> R;
sum = (R / 4 + (R + 1) / 2) - ((L - 1) / 4 + (L - 1 + 1) / 2);
//上面的公式既是<R的满足条件的个数,和<L-1的数的个数
cout << sum;
return 0;
}
0.0分
0 人评分