在程序中可以直接使用log函数,题目要求要向下取整,所以我们直接把log2(a[i])的转化成int类型就可以做到向下取整了。‘
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m; cin>>n>>m;
int a[n+10];
for(int i=1;i<=n;i++){
cin>>a[i];
}
while(m--){
int sum = 0;
int l,r; cin>>l>>r;
for(int i=l;i<=r;i++){
a[i] = log2(a[i])+1;
}
for(int i=1;i<=n;i++){
sum = sum + a[i];
}
cout<<sum<<endl;
}
return 0;
}