知识点数论

校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。
描述
小红拿到了一个区间 [l,r][l,r](这代表从数字 ll 开始,l+1,l+2,⋯l+1,l+2,⋯ 一直到 rr 这 r−l+1r−l+1 个数字),她想知道该区间内有多少个数是 22 的倍数。你能帮帮她吗?
输入描述:
在一行上输入两个整数 l,r(1≦l≦r≦100)l,r(1≦l≦r≦100) 代表区间的左右边界。
输出描述:
输出一个整数,表示区间内 22 的倍数的个数。
示例1
输入:
6 10
复制输出:
3
复制说明:
在这个样例中,区间中的 6,8,106,8,10 这三个数字是 22 的倍数。
cpp
#include <iostream>
using namespace std;
//三种情况 r,l都为奇数 r,l中一个为奇数 r,l都为偶数
//2,3情况数量一致,1情况特殊
int main() {
int l,r;
cin>>l>>r;
if(l&1&&r&1)cout<<(r-l)/2;
else cout<<(r-l)/2+1;
}
// 64 位输出请用 printf("%lld")