Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
180466 A班匡嘉阳 国债计算 C++ 无测评数据 0 0 MS 0 KB 647 2024-08-21 13:55:11

Tests(0/0):


#include <bits/stdc++.h> using namespace std; long long n,s,t,f[51][51]; const int Max = 50; long long c(long long num){ long long ans = 0,len,a[Max]; for(len = 0;num > 0;num /= 2) a[len++] = num % 2; for(int i = 0,cnt = 0;i < len && cnt < n;i++){ if(a[len - i - 1] == 1){ ans += f[len - i - 1][n - cnt]; cnt++; } } return ans; } int main(){ cin >> n >> s >> t; for(int i = 0;i < Max;i++) f[i][0] = f[0][i] = 1; for(int i = 1;i < Max;i++) for(int j = 1;j < Max;j++) f[i][j] = f[i - 1][j] + f[i - 1][j - 1]; cout << c(t) - c(s - 1) << endl; return 0; }