日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

nyoj-222 整数中的1

發布時間:2025/3/16 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nyoj-222 整数中的1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:http://acm.nyist.net/JudgeOnline/problem.php?pid=222

整數中的1

時間限制:3000?ms ?|? 內存限制:1000?KB 難度:4 描述
給出兩個非負32位整型范圍內的數a,b,請輸出閉區間[a,b]內所有數二進制中各個位的1的總個數。 輸入
一行,給出兩個整形數a,b(0<=a<=b<=150000000),空格分隔。
輸出
一行,輸出結果
樣例輸入
1 2
樣例輸出
2
#include<stdio.h> typedef long long LL ; LL get_sum(LL x) {if(x <= 0) return 0;LL k = 0 ;LL n = x ;LL sum = 0 ,y;LL r = 1 ;while(x){k ++ ;r *= 2 ;y = 0 ;LL s = (n + 1) / r ;LL t = (n + 1) % r ;if(t > r/2) y = t - r/2 ;sum += (y + s *(r/2)) ;x >>= 1;}return sum ; } int main() {LL d,b;while(scanf("%lld%lld",&d,&b)!=EOF){printf("%lld\n",get_sum(b)-get_sum(d-1));} }
題解看圖:


總結

以上是生活随笔為你收集整理的nyoj-222 整数中的1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。