文章

166

粉丝

68

获赞

829

访问

51.3k

头像
排列与二进制 题解:不需要大数,只需要逻辑
P1368 吉林大学机试题
发布于2025年3月9日 11:27
阅读数 256

#include <bits/stdc++.h>
using namespace std;

int main() {
	int a,b;
	while(cin>>a>>b){
	    if(a==0&&b==0)break;
	    int ans=0;
	    for(int i=a;i>a-b;i--){
	        int k=i;
	        while(k%2==0){
	            ans++;k/=2;
	        }
	    }
	    cout<<ans<<endl;
	}

}

这题根本不需要算出来,因为已知求模2的运算的数量就是最后的结果,那么,因为我们的运算是乘法,根据阶乘运算发现,是从a到a-b,不取a-b的连乘,那么我们根据数学规则,可以插入这些%2,到每一个 i 之中,即可运算出来结果

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发