信息学奥赛一本通(1412:二进制分类)
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通(1412:二进制分类)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1412:二進制分類
時間限制: 1000 ms ??? ??? 內存限制: 65536 KB
提交數: 9736 ??? 通過數: 6508
【題目描述】
若將一個正整數化為二進制數,在此二進制數中,我們將數字1的個數多于數字0的個數的這類二進制數稱為A類數,否則就稱其為B類數。
例如:
(13)10=(1101)2,其中1的個數為3,0的個數為1,則稱此數為A類數;
(10)10=(1010)2,其中1的個數為2,0的個數也為2,稱此數為B類數;
(24)10=(11000)2,其中1的個數為2,0的個數為3,則稱此數為B類數;
程序要求:求出1~1000之中(包括1與1000),全部A、B兩類數的個數。
【輸入】
(無)
【輸出】
一行,包含兩個整數,分別是AA類數和BB類數的個數,中間用單個空格隔開。
【輸入樣例】
(無)【輸出樣例】
(無)【參考代碼】
#include <stdio.h> int kind(int n) {int zero_count=0,one_count=0;while(n>0){if(n%2==1){one_count++;}else{zero_count++;}n/=2;}return one_count > zero_count ? 1 : 2; } int main() {int i,a_count=0,b_count=0;for(i=1;i<=1000;i++){if(kind(i)==1){a_count++;}else{b_count++;}}printf("%d %d\n",a_count,b_count);return 0; }http://ybt.ssoier.cn:8088/problem_show.php?pid=1412
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的信息学奥赛一本通(1412:二进制分类)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(1398:短信计费)
- 下一篇: 信息学奥赛一本通(1320:【例6.2】