ganmu


私信TA

用户名:dotcpp0726067

访问量:3462

签 名:

等  级
排  名 1522
经  验 2809
参赛次数 0
文章发表 104
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

此题可以用三个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 人评分

  评论区

  • «
  • »