信息学奥赛一本通(1412:二进制分类)
1412:二進(jìn)制分類
時(shí)間限制: 1000 ms ??? ??? 內(nèi)存限制: 65536 KB
提交數(shù): 9736 ??? 通過(guò)數(shù): 6508
【題目描述】
若將一個(gè)正整數(shù)化為二進(jìn)制數(shù),在此二進(jìn)制數(shù)中,我們將數(shù)字1的個(gè)數(shù)多于數(shù)字0的個(gè)數(shù)的這類二進(jìn)制數(shù)稱為A類數(shù),否則就稱其為B類數(shù)。
例如:
(13)10=(1101)2,其中1的個(gè)數(shù)為3,0的個(gè)數(shù)為1,則稱此數(shù)為A類數(shù);
(10)10=(1010)2,其中1的個(gè)數(shù)為2,0的個(gè)數(shù)也為2,稱此數(shù)為B類數(shù);
(24)10=(11000)2,其中1的個(gè)數(shù)為2,0的個(gè)數(shù)為3,則稱此數(shù)為B類數(shù);
程序要求:求出1~1000之中(包括1與1000),全部A、B兩類數(shù)的個(gè)數(shù)。
【輸入】
(無(wú))
【輸出】
一行,包含兩個(gè)整數(shù),分別是AA類數(shù)和BB類數(shù)的個(gè)數(shù),中間用單個(gè)空格隔開(kāi)。
【輸入樣例】
(無(wú))【輸出樣例】
(無(wú))【參考代碼】
#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ā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的信息学奥赛一本通(1412:二进制分类)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信息学奥赛一本通(1398:短信计费)
- 下一篇: 信息学奥赛一本通(1320:【例6.2】