90pts,求助!
查看原帖
90pts,求助!
907430
corner_xiejunqi楼主2024/12/14 22:01
#include <bits/stdc++.h>
using namespace std;
const int mod=998244353;
#define int long long
int n,ans=1;
int num[70]={1};
signed main(){
    cin>>n;
    int add=2;
    for(int i=1;i<=59;i++) num[i]=num[i-1]*2;
    for(int i=1;i<=n;){
    	if(i+num[add-2]<=n){
    		int s=num[add-2]*add;
    		s%=mod;
    		ans+=s;
    		ans%=mod;
			i+=num[add-2];
    		add++;
		}else{
			ans+=(n-i)*add;
			ans%=mod;
			cout<<ans;
			return 0;
		}
	}
	cout<<ans;
    return 0;
}
2024/12/14 22:01
加载中...