HDU 4588 Count The Carries(位运算)

进位计数算法解析
本文介绍了一种计算从数字a加到数字b过程中进位次数的方法。通过判断两数差值每位上的1的数量来计算总的进位数,并提供了解题代码实现。

题意:给定你a,b 问你从a加到b进了多少次位

解题思路:判断a-b每一位上一共有多少个1,然后计算进位即可

解题代码:

 1          {
 2             num1[i] -= (a%k - k/2);
 3          }
 4 
 5          if( a <= k/2 && b <= k/2)
 6              break;
 7        }
 8        LL sum =0 ;
 9        LL temp = 0 ;
10        for(int i = 1;i <= 65; i++)
11        {
12           num1[i] += temp;
13           temp = num1[i]/2;
14           sum += temp;
15        }
16       printf("%I64d\n",sum); 
17     }
18 
19 return 0 ;
20 }
View Code

 

转载于:https://www.cnblogs.com/zyue/p/3308709.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值