बिटवाइज़ ऑपरेटरों का उपयोग किए बिना एक बाइनरी संख्या में लोगों की मात्रा प्रिंट करें


14

विवरण

एक संख्या को देखते हुए, 1द्विआधारी प्रतिनिधित्व में इसकी s की मात्रा प्रिंट करें ।

इनपुट

>= 0आधार 10 में एक संख्या जो आपकी भाषा को संभालने में सक्षम उच्चतम संख्या से अधिक नहीं होगी।

उत्पादन

1बाइनरी प्रतिनिधित्व में एस की मात्रा ।

जीतने की स्थिति

सबसे छोटा कोड जीतता है।

अनुमति नहीं देना

  • बिटवाइज ऑपरेटर। अन्य ऑपरेटरों, जैसे जोड़ और गुणा की अनुमति है।
  • अंतर्निहित आधार रूपांतरण फ़ंक्शन।

उदाहरण

Input:     Ouput:

56432      8


Input:     Output:

45781254   11


Input:     Output:

0          0

क्या कार्यों की अनुमति है? मैं एक जावा समाधान बनाना चाहता हूं, लेकिन पूर्ण कोड लिखना बहुत कठिन है ...: /
HyperNutrino

1
मुझे लगता है कि मैं इस चुनौती के लिए समझदारी का उपयोग नहीं करूंगा ... :)
MildlyMilquetoast

जवाबों:


16

एपीएल, १२ अक्षर

+/2|⌊⎕÷2*⍳32

यह मानता है कि दुभाषिया 32-बिट पूर्णांक का उपयोग करता है, और यह ⎕IO0 पर सेट होता है (जिसका अर्थ है कि 1 के बजाय 1 से monadic शुरू होता है)। मैंने Dyalog APL के 32-बिट संस्करण का उपयोग किया ।

स्पष्टीकरण, दाएं से बाएं

  • ⍳32पहले 32पूर्णांक के एक वेक्टर को उत्पन्न करता है (जैसा कि पहले बताया गया है, क्योंकि ⎕IO0 है, यह वेक्टर 0 से शुरू होता है)।
  • *शक्ति कार्य है। इस मामले में, यह 2वेक्टर के प्रत्येक तत्व की शक्ति को अपने सही तर्क के रूप में उत्पन्न करता है।
  • ÷विभाजित-कार्य है। यह हमें वेक्टर के प्रत्येक तत्व को उसके दाईं ओर (प्रत्येक की दो शक्ति) से विभाजित करके मूल्यांकन करता है।
  • तर्क के प्रत्येक तत्व को उसके अधिकार में रखता है।
  • 2|हमें इसके द्वारा विभाजित प्रत्येक अधिकार का शेष भाग देता है 2
  • /कम कर देता है (सिलवटों) अपने बाएँ करने के लिए समारोह का उपयोग कर अपने सही तर्क +

अब 9 अक्षर नहीं। :(

पुराना, नियम तोड़ने वाला संस्करण:

+/⎕⊤⍨32/2

स्पष्टीकरण, दाएं से बाएं

  • 32/2: पुनरावृत्ति 2, 32समय।
  • डायडिक फ़ंक्शन को उसके बाईं ओर स्थित करता है, जो इस मामले में है (यानी, X⊤⍨Yबराबर है Y⊤X)।
  • एनकोड फ़ंक्शन है। यह पूर्णांक को उसके बाईं ओर दिए गए आधार में दाईं ओर एन्कोड करता है। ध्यान दें कि, कम्यूट ऑपरेटर के कारण, दाएं और बाएं तर्क स्विच किए जाते हैं। आधार को आवश्यक अंकों की संख्या के लिए दोहराया जाता है, इसलिए 32/2
  • एक निलाडिक फ़ंक्शन है जो उपयोगकर्ता इनपुट को स्वीकार करता है और इसका मूल्यांकन करता है।
  • +/कम कर देता है (सिलवटों) अपने सही तर्क का उपयोग कर +। (हम 0 और 1 को जोड़ते हैं।)

2
क्या यह गर्भनिरोधक को नहीं तोड़ता Built-in base conversion functionsहै?
गारेथ

ओह! उस एक को याद किया।
डिलन कवर

गाह! सोचा था कि मैं अपने जे कार्यक्रम के साथ खुद को एक लड़ाई का मौका दूंगा! :-) अच्छी नौकरी।
गारेथ

@ गैरेथ: मुझे समझ में नहीं आया जब तक कि आप अभी अपना स्पष्टीकरण नहीं पढ़ते हैं, लेकिन मेरा जवाब आपके लिए बहुत समान है! मुझे लगता है कि एपीएल और जे :) से उम्मीद की जा सकती है
डिलन कॉवर

11

ब्रेनबुल , २

,.

सबसे उचित व्याख्या, मेरी राय (और क्या जवाब में से सबसे अधिक उपयोग) के "सबसे बड़ी संख्या अपनी भाषा को संभालने में सक्षम है" में "सबसे बड़ी संख्या अपनी भाषा है मूल रूप से समर्थन करता है।" ब्रेनबुल एक ब्रेनफॉक व्युत्पन्न है जो बाइट्स के बजाय बिट्स का उपयोग करता है, और चरित्र कोड के बजाय बाइनरी ( 0और 1वर्ण) में इनपुट और आउटपुट लेता है । सबसे बड़ा मूल रूप से समर्थित संख्या इसलिए है 1, और सबसे छोटी है 0, जो आलोचनात्मक वजन है 1और 0क्रमशः।

Esolang के अनुसार, ब्रेनबुल को 2010 में बनाया गया था।


9
मुझे पता था कि यह अस्तित्व में रहा होगा, लेकिन मुझे ब्रेनबुल खोजने के लिए एसोलंग पर ब्रेनफक डेरिवेटिव्स के माध्यम से छंटनी का एक घंटा लगा।
lirtosiast

8

जे, 13 वर्ण

(संख्या में अंकों की संख्या)

+/2|<.n%2^i.32

उपयोग: nकार्यक्रम में परीक्षण की जाने वाली संख्या के साथ बदलें ।

उदाहरण:

+/2|<.56432%2^i.32
8
+/2|<.45781254%2^i.32
11
+/2|<.0%2^i.32
0

संभवत: इसे फिर से व्यवस्थित करने का एक तरीका है, इसलिए संख्या को शुरुआत या अंत में रखा जा सकता है, लेकिन यह मेरी पहली जे प्रविष्टि है और मेरे सिर को अब थोड़ा चोट पहुंचा रही है।

स्पष्टीकरण (मुख्यतः ताकि मैं इसे भविष्य में समझूँ)

i.32 - 1 से 32 की संख्या का एक सरणी बनाता है

2^ - सूची को दो 1 से 4294967296 में बदल देता है

n% - सूची में प्रत्येक तत्व द्वारा इनपुट संख्या को विभाजित करता है

<. - सभी डिविज़न के परिणाम अगले पूर्णांक तक आते हैं

2|- %2अधिकांश भाषाओं में समान - 0 यदि और भले ही 1 विषम हो तो रिटर्न

+/ - सूची में वस्तुओं को शामिल करता है (जो अब सिर्फ 1s या 0s हैं)


एक बार जब यह स्टडिन (या जो भी समकक्ष जे के पास है) से पढ़ता है, तो मुझे इस पर उत्थान करने में खुशी होगी।
स्टीवन रूम्बल्स्की

सबसे अच्छा मैं क्या सोच सकता था (शायद यह पता लगाने पर निर्भर करता है कि) कार्यक्रम के अंत में इनपुट को कैसे स्थानांतरित किया जाए। प्रश्न में मानक इनपुट का उल्लेख नहीं किया गया है?
गारेथ

मुझे इनपुट के तरीके को निर्दिष्ट नहीं करने के लिए खेद है। अब नियमों को बदलना अनुचित होगा, इसलिए मैं इसे स्वीकार करूंगा। मैं अगली बार इसका उल्लेख करूंगा!
pimvdb

@pimvdb कोई समस्या नहीं है, यह कोई शिकायत नहीं थी। मुझे लगता है कि जे कार्यक्रमों के साथ यद्यपि आप सभी कर सकते हैं एक क्रिया को परिभाषित करते हैं जो इसे दिए गए इनपुट पर संचालित होता है। मुझे यकीन नहीं है कि मैं इसे कैसे फिर से व्यवस्थित करूंगा, हालांकि शायद जेबी या अन्य जे विशेषज्ञों में से एक मेरी मदद कर सकता है ...
गैरेथ

... और कुछ और पढ़ने के बाद अब मैं देख रहा हूं कि मैं मानक इनपुट के बारे में पूरी तरह से गलत था।
गैरेथ

8

ब्रेनफक, 53 वर्ण

यह एक अनिवार्य Brainfuck समाधान याद कर रहा था, इसलिए मैंने इसे बनाया:

[[->+<[->->>>+<<]>[->>>>+<<]<<<]>>>>[-<<<<+>>>>]<<<<]

सेल 1 से नंबर लेता है और सेल 6 में परिणाम डालता है।

अनियंत्रित और टिप्पणी संस्करण:

[  while n != 0
  [  div 2 loop
    -
    >+<  marker for if/else
    [->->>>+<<]  if n != 0 inc n/2
    >
    [->>>>+<<]  else inc m
    <<<
  ]
  >>>>  move n/2 back to n
  [-<<<<+>>>>]
  <<<<
]

6

पायथन 2.6, 41 अक्षर

t,n=0,input()
while n:t+=n%2;n/=2
print t

नोट: मेरा अन्य उत्तर लैम्ब्डा और रिकर्सियन का उपयोग करता है और यह एक लूप का उपयोग करता है। मुझे लगता है कि वे दो उत्तर देने के लिए पर्याप्त अलग हैं।


6

रूबी, 38 अक्षर

f=->u{u<1?0:u%2+f[u/2]}
p f[gets.to_i]

रूबी और स्टीवन के समान पुनरावर्ती दृष्टिकोण का उपयोग कर एक और समाधान।


5

गोल्फस्क्रिप्ट, 17 16 वर्ण

~{.2%\2/.}do]0-,

संपादित करें: नया संस्करण गुना के बजाय सूची संचालन का उपयोग करके 1 चरित्र बचाता है (मूल संस्करण ~{.2%\2/.}do]{+}*प्रत्यक्ष गिनती संस्करण था :) ~0\{.2%@+\2/.}do;


5

सी, 45

f(n,c){for(c=0;n;n/=2)c+=n%2;printf("%d",c);}

सी में गोल्फिंग के लिए वास्तव में यहां कुछ भी विशेष नहीं है: मापदंडों के लिए निहित रिटर्न प्रकार, अंतर्निहित पूर्णांक प्रकार।


4

पायथन 2.6, 45 वर्ण

b=lambda n:n and n%2+b(n/2) 
print b(input())

1
लंबोदर के defबजाय दो पात्रों को छोटा किया जा सकता है ।
कोनराड रुडोल्फ

1
@KonradRudolph: दरअसल, रिटर्न स्टेटमेंट को शामिल करने के बाद आप लाभ खो देते हैं।
स्टीवन रूम्बल्स्की

उफ़, मैं यह भूल गया। बेवकूफ।
कोनराड रुडोल्फ

आप की जरूरत नहीं है print b(input())। यह मानों को वापस करने और कार्यों के लिए तर्क के रूप में "इनपुट" लेने के लिए स्वीकार्य है।
caird coinheringaahing

4

पर्ल, 45 43 36 वर्ण

$n=<>;while($n){$_+=$n%2;$n/=2}print

45-> 43 के लिए हावर्ड और 43-> 36 के लिए यूजर 606723 को धन्यवाद।


आप $n=int($n/2)कौन से 2 वर्णों का उपयोग कर सकते हैं ।
हावर्ड

क्या हमें यकीन है कि हमें इंट () की आवश्यकता है? $n=<>;while($n){$_+=$n%2;$n/=2}printयह तब तक लूप करता रहेगा जब तक $ n / 2 अंत में 0 के करीब नहीं हो जाता, लेकिन क्या हमें परवाह है? ;)
user606723

@ user606723 मैंने अभी-अभी कोशिश की है और यह पूरी तरह से काम करने के लिए लगता है, कम से कम हर मामले में 1000 तक।
PhiNotPi

3

पर्ल, 30 वर्ण

$==<>;1while$_+=$=%2,$=/=2;say

कुछ अतिरिक्त गोल्फ के साथ PhiNotPi के समाधान पर आधारित है । perl -M5.010पर्ल 5.10 sayफ़ीचर को इनेबल करने के लिए रन करें ।


क्या $=विशेष चर आपके कार्यक्रम में कुछ विशेष करता है, या यह सिर्फ एक और सामान्य चर है?
PhiNotPi

2
@PhiNotPi: $=केवल पूर्णांक मान लेता है, इसलिए इसका उपयोग करके मुझे बचाता है a int
इल्मरी करोनें

क्या कमांड-लाइन arg चार गिनती का हिस्सा नहीं होना चाहिए?
सोहम चौधरी

@SohamChowdhury: इस मेटा थ्रेड के अनुसार नहीं ।
इल्मरी करोनें

3

आम लिस्प, 12 वर्ण

(1 चर चर नाम मानकर - यानी: 11 + संख्या लंबाई)

यह आधार रूपांतरण कार्य नहीं है, इसलिए इसे काम करना चाहिए:

(logcount x)

उदाहरण:

[1]> (logcount 0)
0
[2]> (logcount 1)
1
[3]> (logcount 1024)
1
[4]> (logcount 1023)
10
[5]> (logcount 1234567890123456789012345678901234567890)
68

(GNU CLISP का उपयोग करना।)


हम्म ठीक है, नहीं बिल्कुल क्या मैं एक जवाब के रूप में देखने के लिए मन में था :) मुझे नहीं लगता कि मैं इसे स्वीकार कर सकता हूं। यह मूल रूप से इस का एक और मामला है ।
pimvdb

3

C, 61 60 57 53 वर्ण

void f(x){int i=0;for(;x;x/=2)i+=x%2;printf("%u",i);}

फ़ंक्शन बॉडी केवल 38 वर्ण है। संपादित करें : हटाए गए बिटवाइज़र ऑपरेटर संपादित करें : printfटिप्पणियों में सुझाए अनुसार लूप से बाहर करें संपादित करें : K & R घोषणा पर स्विच करें ; इसके अलावा, यह अब C99- विशिष्ट नहीं है


मुझे बिटवाइस दिखती है !!!
जोनिस

मुझे खेद है लेकिन AND ऑपरेटर भी एक बिटवाइज़ ऑपरेटर के रूप में गिना जाता है।
pimvdb

@ M.Joanis: duh, नोटिफ़िकेशन के लिए धन्यवाद। फिक्स्ड।
sam hocevar 12

1
मुझे लगता है कि यदि आप K & R C. पर स्विच करते हैं तो आप कुछ पात्रों को छोड़ सकते हैं। यदि आप इसके साथ ठीक हैं।
जेबी

आप लूप से प्रिंटफ़ को स्थानांतरित करके इसे चार वर्णों से छोटा कर सकते हैं।
मारीनस

3

डीसी - 26 वर्ण

यह लंबे समय तक है, ज्यादातर लूप की कमी के कारण होता है dc

0?[d2%rsi+li2/d0<x]dsxx+p

संख्या के मॉडुलो 2 को जोड़कर रखता है और शून्य तक पहुंचने तक संख्या को विभाजित करता है। मनमाने ढंग से लंबे पूर्णांक संभाल सकते हैं।

उदाहरण:

$ dc -e '0?[d2%rsi+li2/d0<x]dsxx+p' <<< 127
7
$ dc countones.dc <<< 1273434547453452352342346734573465732856238472384263456458235374653784538469120235
138

3

सी, 66 अक्षर

main(int n,char **a){printf("%u",__builtin_popcount(atoi(a[1])))};

नोट: gcc या gcc- संगत संकलक (जैसे ICC, clang) की आवश्यकता है।

कुछ CPU के __builtin_popcountलिए एक निर्देश (जैसे POPCNTx86) पर संकलित किया जाता है ।


क्या यह सही है कि __builtin_popcountवास्तव में सिर्फ 1खुद की गिनती को लागू करता है? यदि ऐसा है, हालांकि यह कड़ाई से गलत नहीं है नियमों के अनुसार मैं ईमानदारी से नहीं लगता कि यह एक उचित प्रविष्टि है।
pimvdb

यदि आप ऐसी प्रविष्टियों को अस्वीकार करना चाहते हैं जो किसी दिए गए भाषा या संकलक की अंतर्निहित क्षमताओं का लाभ उठाना चाहते हैं, तो आपको संभवतः इस प्रश्न को निर्धारित करना चाहिए।
पॉल आर

यह कानूनी C ++ नहीं है क्योंकि C ++ में आप मुख्य पर रिटर्न प्रकार को छोड़ नहीं सकते हैं, और न ही printfपूर्व शामिल किए बिना उपयोग करते हैं।
celtschk

@celtschk: फेयर पॉइंट - C++
पॉल आर

2

जावास्क्रिप्ट, 78 72 71 अक्षर

मैं अपना प्रारंभिक समाधान पोस्ट करूँगा जो मैंने प्रश्न पोस्ट करने से पहले किया था। वहाँ पहले से ही एक बहुत बेहतर जावास्क्रिप्ट जवाब है :)

for(n=prompt(a=0),j=1;j<=n;j*=2)for(i=j;i<=n;i+=2*j)n<i+j&&a++;alert(a)

http://jsfiddle.net/Mk8zd/1/

यह विचार कुछ "माइंड रीडिंग कार्ड्स" से आता है जो आपको कार्ड को दिखा कर किसी और के मन में आने वाली संख्या प्राप्त करने में सक्षम बनाते हैं और उन्हें यह बताते हैं कि किस कार्ड पर उनकी संख्या स्पष्ट है।

यह काम करता है क्योंकि प्रत्येक संख्या बाइनरी में 1s / 0s का एक अनूठा संयोजन है । मेरा समाधान यह जांचता है कि किस नंबर पर "कार्ड" स्पष्ट है ताकि 1यह निर्धारित किया जा सके कि उसमें कितने s हैं। यह सिर्फ बहुत कुशल नहीं है, हालांकि ...

मुझे यह दस्तावेज़ मिला जो मन पढ़ने की तकनीक को रेखांकित करता है।



2

PHP, 57

$i=$s=0;for(;$i<log($n,2);){$s+=$n/pow(2,$i++)%2;}echo$s;

यह मान लिया गया है कि $nपरीक्षण किया जाने वाला मूल्य है।

PHP, 55 (वैकल्पिक समाधान)

function b($i){return$i|0?($i%2)+b($i/2):0;}echo b($n);

फिर, यह मान लेता है कि $nपरीक्षण किया जाने वाला मूल्य है। यह एक विकल्प है क्योंकि यह floorइनपुट के लिए ऑपरेटर का उपयोग करता है ।

दोनों समाधान काम करते हैं और नोटिस का कारण नहीं बनते हैं।


2

Ocaml, 45 अक्षर

@Lue Xue के समाधान के आधार पर। तीन रिक्त स्थान निकाले जा सकते हैं और अगर-तब-तब के बजाय फ़ंक्शन का उपयोग करने के लिए यह थोड़ा छोटा है (~ 3 वर्ण)।

let rec o=function 0->0|x->(x mod 2)+(o(x/2))  


1

स्काला, 86 वर्ण

object O extends App{def f(i:Int):Int=if(i>0)i%2+f(i/2)else 0
print(f(args(0).toInt))}

उपयोग: scala O 56432



1

आर, 53 वर्ण

o=function(n){h=n%/%2;n%%2+if(h)o(h)else 0};o(scan())

उदाहरण:

> o=function(n){h=n%/%2;n%%2+if(h)o(h)else 0};o(scan())
1: 56432
2: 
Read 1 item
[1] 8
> o=function(n){h=n%/%2;n%%2+if(h)o(h)else 0};o(scan())
1: 45781254
2: 
Read 1 item
[1] 11
> o=function(n){h=n%/%2;n%%2+if(h)o(h)else 0};o(scan())
1: 0
2: 
Read 1 item
[1] 0

यदि संख्या इनपुट करना वर्ण गणना का हिस्सा नहीं है, तो यह 43 वर्ण है:

o=function(n){h=n%/%2;n%%2+if(h)o(h)else 0}

परीक्षण मामलों के साथ

> o(56432)
[1] 8
> o(45781254)
[1] 11
> o(0)
[1] 0


1

योजना

मैंने चुनौती को जोड़ने के लिए नियमों को थोड़ा पॉलिश किया। फ़ंक्शन संख्या के आधार के बारे में परवाह नहीं करता है क्योंकि यह अपने स्वयं के बाइनरी स्केल का उपयोग करता है। मैं जिस तरह से एनालॉग से संख्यात्मक रूपांतरण कार्यों से प्रेरित था। मैं इसके लिए सादे पुनरावर्तन का उपयोग करता हूं:

(define (find-ones n)
  (define (nbits n)
    (let nbits ([i 2])
      (if (< i n) (nbits (* i 2)) i)))
  (let f ([half (/ (nbits n) 2)] [i 0] [n n])
    (cond [(< half 2) i]
      [(< n i) (f (/ half 2) i (/ n 2))]
      [else (f (/ half 2) (+ i 1) (/ n 2))])))

1

बाइनरी में एक संख्या को पढ़ना नहीं है या बाइनरी से एक "बिलिन बेस कनवर्ज़न फंक्शन" की संख्या को प्रिंट करना है, इस प्रकार यह प्रत्येक उत्तर को printएक पूर्णांक को अमान्य कर रहा है ? यदि आप एक पूर्णांक को पढ़ने और प्रिंट करने की अनुमति देते हैं, जैसे कि उपरोक्त सभी उत्तर करते हैं, तो मैं एक अंतर्निहित popcountफ़ंक्शन का उपयोग करके दावे करूंगा :

हास्केल, 50

इस गर्मी में GHC v7.2.1 / v7.4.1 के लिए मॉड्यूल में एक popCountरूटीन जोड़ा गया था Data.Bits(देखें प्राइम और बाइंडिंग से संबंधित टिकट )।

import Data.Bits
main=interact$show.popCount.read

मैं उनके का उपयोग कर पायथन और पर्ल स्कोर ऊपर नहीं हरा सकते हैं GMPYया GMP::Mpzजीएमपी उदासी के लिए मॉड्यूल है, हालांकि जीएमपी प्रस्ताव एक करता है popcount समारोह भी।


1

जावास्क्रिप्ट, 49 47 45 42 बाइट्स

for(n=prompt(o=0);n=n/2|0;o+=n%2);alert(o)

डेमो: http://jsfiddle.net/hcYdx/4/

1 संपादित करें: गोलाई के लिए निकालें qऔर उपयोग करें ~~, 2 वर्ण सहेजें।

2 संपादित करें: कोष्ठक (2 वर्ण) को बचाने के |0बजाय गोलाई संचालक का उपयोग करें~~

संपादित करें 3: पूरी स्थिति बनाने के n>0लिए इसे सरल nऔर संयोजित करें n=n/2|0; अब बर्बाद कर दिया है बयान अंतरिक्ष :(


3
नहीं है |0एक बिटवाइज़ ऑपरेटर?
विल्क-

तकनीकी रूप से हाँ। लेकिन मैं इसे शुद्ध रूप से निकटतम int के लिए गोल करने के लिए उपयोग कर रहा हूं, इसलिए मुझे कोई भी बिट-वार लाभ नहीं मिल रहा है :)
mellamokb

मेरे लिए नियम झुकाने जैसी खुशबू आ रही है ... लेकिन मैं जज नहीं हूं।
विल्क- Vil

इनपुट 1 आउटपुट 0.
Atreys

1
|बिटवाइज़ ऑपरेटर है ... यह अस्वीकृत है। करने का समय Math.round:-)
जेमी

1

जावा 7, 36 बाइट्स

int b(Long a){return a.bitCount(a);}

इस वजह से, सभी चीजों में से, कुछ ऐसा है जो जावा के लिए एक बिल्डिन है ...


क्या यह "अंतर्निहित आधार-रूपांतरण कार्यों" के तहत फिट नहीं है, जो प्रतिबंधित हैं?
फ्लिपकैक

@ Flp.Tkc मैं वास्तव में आधार-रूपांतरण नहीं कर रहा हूं। मुझे नहीं पता कि bitCountहुड के नीचे कैसे काम होता है।
पोक

यह सिर्फ काम करने के लिए एक bulitin का उपयोग करने की तरह लगता है, लेकिन ठीक है ...
20

@ Flp.Tkc यह ... वास्तव में यह क्या है? मैं सभी आवश्यक पुस्तकालयों को भी शामिल कर रहा हूँ (कोई भी नहीं है)। यह भाषा की ताकत का प्रदर्शन है! संबंधित मेटा
पोक

1

टीआई-बेसिक (TI-84 Plus CE), 30 बाइट्स

Prompt X
0→S
While X
S+remainder(2,X→S
int(X/2→X
End
S

TI-बेसिक एक tokenized भाषा है, सभी टोकन लेकिन remainder(कर रहे हैं एक-बाइट , शेष दो है


साइट पर आपका स्वागत है!
जेम्स

1

PHP, 36 बाइट्स

while($n){$o+=$n%2;$n/=2*1;}echo $o;

मान लिया गया $nनंबर परीक्षण किया जाना, शो के लिए एक PHP सूचना है $o, और जब नहीं वास्तव में काम करता है $n0 (आउटपुट कुछ भी नहीं है)।

PHP, 53 बाइट्स

$n=$argv[1];$o=0;while($n){$o+=$n%2;$n/=2*1;}echo $o;

कमांड-लाइन इनपुट को स्वीकार करता है, एक PHP नोटिस नहीं दिखाता है, और 0 के लिए सही ढंग से आउटपुट करता है।


साइट पर आपका स्वागत है! :)
जेम्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.