题目大意:计算小于2^n,且满足2^k-1并且是7的倍数的个数
思路:优先打表,数据不大,1e5,然后求个前n项和
#include<bits/stdc++.h> using namespace std; const int N=1E5+1; int arr[N]; void inint(int x){ int t=1; for(int i=1;i<=x;i++){ t<<=1; t%=7; if(t==1) arr[i]=1; } for(int i=1;i<=x;i++) arr[i]=arr[i]+arr[i-1]; } void solve(int xx){ int n; cin>>n; printf("Case #%d: %d\n",xx,arr[n]); } int main(){ inint(N); int n; cin>>n; for(int i=1;i<=n;i++) solve(i); return 0; }