YunYan

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

题目大意:计算小于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;
}

 

posted on 2019-10-05 20:26  Target--fly  阅读(159)  评论(0编辑  收藏  举报