বিটওয়াইজ অপারেটরগুলি ব্যবহার না করে বাইনারি সংখ্যায় পরিমাণের মুদ্রণ করুন


14

বিবরণ

একটি নম্বর দেওয়া, 1বাইনারি উপস্থাপনায় এটির পরিমাণ মুদ্রণ করুন ।

ইনপুট

>= 0দশম বেসে এমন একটি সংখ্যা যা আপনার ভাষা হ্যান্ডেল করতে সক্ষম সর্বোচ্চ সংখ্যাকে ছাড়বে না।

আউটপুট

1বাইনারি উপস্থাপনায় এর পরিমাণ ।

জয়ের শর্ত

সংক্ষিপ্ততম কোডটি জয়ী।

প্রত্যাখ্যাত

  • বিটওয়াইস অপারেটর। অন্যান্য অপারেটরগুলি যেমন সংযোজন এবং গুণণের জন্য অনুমোদিত।
  • অন্তর্নির্মিত বেস রূপান্তর ফাংশন।

উদাহরণ

Input:     Ouput:

56432      8


Input:     Output:

45781254   11


Input:     Output:

0          0

ফাংশন অনুমোদিত? আমি একটি জাভা সমাধান তৈরি করতে চাই, তবে সম্পূর্ণ কোড লেখা খুব ক্লান্তিকর ...: /
হাইপারনিউটারিনো

1
আমি মনে করি আমি এই চ্যালেঞ্জের জন্য বুদ্ধিমান ব্যবহার করব না ... :)
মাইল্ডিলিউকোটিওস্ট

উত্তর:


16

এপিএল, 9 12 টি অক্ষর

+/2|⌊⎕÷2*⍳32

এটি ধরে নেওয়া হয় যে দোভাষী 32২-বিট পূর্ণসংখ্যার ব্যবহার করেন এবং এটি ⎕IO0 তে সেট করা হয় (যার অর্থ monadic 1 এর পরিবর্তে 0 দিয়ে শুরু হয়)। আমি ডায়ালগ এপিএলের 32-বিট সংস্করণ ব্যবহার করেছি

ডান থেকে বামে ব্যাখ্যা:

  • ⍳32প্রথম 32পূর্ণসংখ্যার একটি ভেক্টর তৈরি করে (যেমন আগে ব্যাখ্যা করা হয়েছে, কারণ ⎕IO0, এই ভেক্টরটি 0 দিয়ে শুরু হয়)।
  • *শক্তি ফাংশন হয়। এই ক্ষেত্রে, এটি 2ভেক্টরের প্রতিটি উপাদানকে তার সঠিক যুক্তি হিসাবে সরবরাহ করে power
  • ÷বিভাজন দ্বারা ফাংশন। এটি আমাদেরকে (মূল্যায়িত ব্যবহারকারী ইনপুট) ভেক্টরের প্রতিটি উপাদানকে তার ডানদিকে ভাগ করে দেয় (দুটি করে প্রতিটি শক্তি) gives
  • আর্গুমেন্টের প্রতিটি উপাদানকে তার ডানদিকে মেলে দেয়।
  • 2|আমাদের প্রতিটি উপাদান এর বাকী অংশকে তার ডান দিয়ে ভাগ করে দেয় 2
  • /তার ডান যুক্তিটি তার বামে ফাংশনটি ব্যবহার করে (ভাঁজ) হ্রাস করে +

এখন আর 9 টি চরিত্র নয়। :(

পুরানো, নিয়ম-ভঙ্গকারী সংস্করণ:

+/⎕⊤⍨32/2

ডান থেকে বামে ব্যাখ্যা:

  • 32/2: প্রতিলিপি 2, 32বার।
  • ডায়াডিক ফাংশনটিকে তার বামে পরিবর্তিত করে, যা এই ক্ষেত্রে (যেমন, X⊤⍨Yসমান Y⊤X)।
  • এনকোড ফাংশন। এটি তার বাম দিকে দেওয়া বেসটিতে তার ডানদিকে পূর্ণসংখ্যাটি এনকোড করে। নোট করুন, যাতায়াত অপারেটরের কারণে ডান এবং বাম তর্কগুলি স্যুইচ করা হয়েছে। বেসটি প্রয়োজনীয় সংখ্যার সংখ্যার জন্য পুনরাবৃত্তি হয় 32/2
  • নীলাদিক ফাংশন যা ব্যবহারকারীর ইনপুট গ্রহণ করে এবং এর মূল্যায়ন করে।
  • +/ব্যবহার করে এর সঠিক যুক্তি হ্রাস করে (ভাঁজ) +। (আমরা 0 এবং 1 এর যোগ করি))

2
এটি কি Built-in base conversion functionsকনট্রিন্ট ভেঙে না ?
গ্যারেথ

উপস! মিস করেছেন one
ডিলন কাওয়ার

গাহ! ভেবেছিলাম আমি আমার জে প্রোগ্রামের সাথে লড়াইয়ের সুযোগ দেব! :-) সুন্দর কাজ.
গ্যারেথ

@ গ্যারেথ: এখনই আপনার ব্যাখ্যাটি পড়া না হওয়া পর্যন্ত আমি বুঝতে পারিনি, তবে আমার উত্তরটি আপনার কাছে অনেকটা অভিন্ন! আমার ধারণা, এপিএল এবং জে। থেকে প্রত্যাশা করা যেতে পারে :)
ডিলন কাওয়ার

11

ব্রেনবুল , ২

,.

"আপনার ভাষা হ্যান্ডেল করতে সক্ষম সর্বাধিক সংখ্যক" "আমার মতে (এবং বেশিরভাগ উত্তরগুলি কী ব্যবহার করে) সর্বাধিক যুক্তিসঙ্গত ব্যাখ্যা হ'ল" আপনার ভাষা দেশীয়ভাবে সমর্থন করে এমন বৃহত্তম সংখ্যা "। ব্রেইনবুল একটি ব্রেইনফাক ডেরিভেটিভ যা বাইটের পরিবর্তে বিট ব্যবহার করে 0এবং 1অক্ষর কোডের পরিবর্তে বাইনারি ( এবং অক্ষর) এ ইনপুট এবং আউটপুট নেয় । বৃহত্তম নেটিভ সমর্থিত সংখ্যা তাই হয় 1, এবং ক্ষুদ্রতম হয় 0, যা Hamming ওজন আছে 1এবং 0যথাক্রমে।

ব্রনবুল 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 বা 0 এর দশক)


এটি স্টিডিনের (বা সমমানের জে যা কিছু আছে) পড়ার পরে আমি এটি উত্সাহিত করতে পেরে খুশি হব।
স্টিভেন রাম্বালস্কি

আমি যা করতে পারি তার সেরাটি (সম্ভবত, কীভাবে তা নির্ধারণের উপর নির্ভর করে) প্রোগ্রামটির শেষের দিকে ইনপুটটি সরানো হয়। প্রশ্নে স্ট্যান্ডার্ড ইনপুট উল্লেখ করা হয়নি যদিও?
গ্যারেথ

ইনপুটটির উপায় নির্দিষ্ট না করায় আমি দুঃখিত। এখনই নিয়মগুলি পরিবর্তন করা অন্যায় হবে, সুতরাং আমি এটি গ্রহণ করব। আমি এর পরের বার উল্লেখ করব!
pimvdb

@ পিমভিডিবি সমস্যা নেই, এটি কোনও অভিযোগ ছিল না। আমি মনে করি জে জে প্রোগ্রামগুলির সাথে যদিও আপনি যা করতে পারেন তা হল একটি ক্রিয়া সংজ্ঞায়িত করা যা প্রদত্ত ইনপুটটিতে কাজ করে। যদিও এটি করতে আমি এটি পুনরায় সাজিয়েছি তা নিশ্চিত নয়। হয়তো জেবি বা অন্য কোনও জে বিশেষজ্ঞরা আমাকে
এটির জন্য

... এবং আরও কিছু পড়ে আমি এখন দেখতে পাচ্ছি যে স্ট্যান্ডার্ড ইনপুট সম্পর্কে আমি সম্পূর্ণ ভুল ছিল was
গ্যারেথ

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
@ কনরাড রুডল্ফ: রিটার্নের স্টেটমেন্টটি অন্তর্ভুক্ত করার পরে আপনি সুবিধাটি হারাবেন।
স্টিভেন রাম্বালস্কি

উফ, আমি ভুলে গেছি মূঢ়।
কনরাড রুডল্ফ

আপনি প্রয়োজন হবে না print b(input())। মানটি ফিরিয়ে দেওয়া এবং ফাংশনগুলির আর্গুমেন্ট হিসাবে "ইনপুট" গ্রহণযোগ্য is
কায়ার্ড কইনিরিংহিংহিং

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}printLo n / 2 অবশেষে 0 এর কাছাকাছি পৌঁছানো অবধি লুপিং চালিয়ে যেতে থাকবে, তবে আমরা কি যত্ন নিই? ;)
ব্যবহারকারী 606723

@ ব্যবহারকারী 606723 আমি কেবল এটি চেষ্টা করে দেখেছি এবং এটি কমপক্ষে 1000 পর্যন্ত প্রতিটি ক্ষেত্রেই নিখুঁতভাবে কাজ করছে বলে মনে হচ্ছে।
ফিনোটপিপি

3

পার্ল, 30 টি অক্ষর

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

Based on PhiNotPi's solution, with some extra golfing. Run with perl -M5.010 to enable the Perl 5.10 say feature.


Does the $= special variable do anything special in your program, or is it just another ordinary variable?
PhiNotPi

2
@PhiNotPi: $= only takes integer values, so using it saves me an int.
Ilmari Karonen

কমান্ড-লাইন আরগটি চরের গণনার অংশ হওয়া উচিত নয়?
সোহম চৌধুরী

@ সোহমচৌধুরী: এই মেটা থ্রেড অনুযায়ী নয় ।
ইলমারি করোনেন

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

(জিএনইউ ক্লিএসপি ব্যবহার করে))


Hm well, not exactly what I had in mind to see as an answer :) I don't think I can accept this. It's basically just another case of this.
pimvdb

3

C, 61 60 57 53 characters

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

The function body only is 38 characters. Edit: removed bitwise operator Edit: put printf out of the loop as suggested in the comments Edit: switch to K&R declaration; also, this is no longer C99-specific


I see bitwise!!!
Joanis

I'm sorry but the AND operator also counts as a bitwise operator.
pimvdb

@M.Joanis: duh, thanks for noticing. Fixed.
sam hocevar

1
I think you could spare a few characters if you switched to K&R C. If you're ok with that.
J B

You could shorten this by four characters by moving the printf out of the loop.
marinus

3

dc – 26 chars

This is rather long, mostly due to the lack of loop constructs in dc.

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

Keeps adding up the modulo 2 of the number and dividing the number by to until it reaches zero. Can handle arbitrarily long integers.

Example:

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

3

C, 66 characters

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

Note: requires gcc or gcc-compatible compiler (e.g. ICC, clang).

For some CPUs __builtin_popcount compiles to a single instruction (e.g. POPCNT on x86).


Is it correct that __builtin_popcount actually just implements the counting of 1s itself? If so, although it's not strictly wrong according to the rules I honestly don't think this is a fair entry.
pimvdb

আপনি যদি কোনও প্রদত্ত ভাষা বা সংকলকটির অন্তর্নির্মিত ক্ষমতাগুলির সুবিধা গ্রহণ করে এমন এন্ট্রিগুলিকে অস্বীকার করতে চান তবে আপনার সম্ভবত প্রশ্নটিতে এটি নির্ধারণ করা উচিত।
পল আর

এটি আইনী সি ++ নয় কারণ সি ++ এ আপনি মূলটিতে রিটার্নের ধরণটি বাদ দিতে পারবেন না বা printfপূর্বে অন্তর্ভুক্ত ব্যতীত ব্যবহার করতে পারবেন না ।
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/

ধারণাটি নির্দিষ্ট "মাইন্ড রিডিং কার্ড" থেকে আসে যা আপনাকে অন্য কারও মনে মনে নম্বর পেয়েছে, কার্ডগুলি প্রদর্শন করে এবং কোন কার্ডে তাদের নম্বরটি সুস্পষ্ট তা বলতে দেয় enable

এটি কাজ করে কারণ প্রতিটি সংখ্যা বাইনারিতে 1s / 0s এর একটি অনন্য সংমিশ্রণ । আমার সমাধান যা "কার্ডগুলি" নাম্বারটি আপাত তা পরীক্ষা করে যাতে 1এটিতে কতটি রয়েছে তা নির্ধারণ করে । এটি কেবল খুব দক্ষ নয়, যদিও ...

আমি এই দস্তাবেজটি খুঁজে পেয়েছি যা মন পড়ার কৌশলটির রূপরেখা দেয়।



2

পিএইচপি, 57

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

এই যে ধরে $n পরীক্ষার জন্য মানটি ধারণ করে।

পিএইচপি, 55 (বিকল্প সমাধান)

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

আবার, এটি ধরে নিয়েছে যে $nপরীক্ষা করার জন্য মানটি রয়েছে। এটি বিকল্প হিসাবে কারণ এটিতে অপারেটর ব্যবহার করেfloor

উভয় সমাধান কাজ করে এবং বিজ্ঞপ্তি দেয় না।


2

ওকামল, 45 টি অক্ষর

@ লিয়া জিউ এর সমাধানের ভিত্তিতে। তিনটি স্পেস সরানো যেতে পারে এবং যদি-তবে-অন্যটির পরিবর্তে ফাংশনটি ব্যবহার করতে খুব কম হয় (~ 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

এই গ্রীষ্মে জিএইচসি ভি 7.2.1 / ভি 7.4.1 এর জন্য মডিউলে একটি popCountরুটিন যুক্ত হয়েছিল Data.Bits( প্রাইমপ এবং বাইন্ডিং সম্পর্কিত টিকিট দেখুন )।

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

দু: খজনকভাবে GMP এর জন্য তাদের GMPYবা GMP::Mpzমডিউলগুলি ব্যবহার করে আমি উপরের পাইথন এবং পার্ল স্কোরগুলিকে পরাজিত করতে পারি না , যদিও জিএমপি একটি পপকাউন্ট ফাংশন সরবরাহ করে।


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: এর|0 পরিবর্তে রাউন্ডিং অপারেটর ব্যবহার করুন~~ বন্ধনী (2 টি অক্ষর) সংরক্ষণ করার ।

3 সম্পাদনা করুন: সরল n>0করুন nএবং n=n/2|0সম্পূর্ণ শর্ত তৈরি করার সাথে একত্রিত করুন ; এখন বিবৃতি স্থান নষ্ট করেছে :(


3
কি |0বিটওয়াইজ অপারেটর নয়?
ভিলক্স-

প্রযুক্তিগতভাবে হ্যাঁ তবে আমি এটি
নিখুঁতভাবে কাছাকাছি পৌঁছানোর

আমার কাছে নিয়মগুলি বাঁকানোর মতো গন্ধ ... তবে আমি বিচারক নই।
ভিলাক্স-

ইনপুট 1 আউটপুট দেয় 0
অ্যাট্রেজ

1
|বিটওয়াইজ অপারেটর ... এটি অনুমোদিত নয়। করার সময় Math.round:-)
জেমি

1

জাভা 7, 36 বাইট

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

কারণ অবশ্যই এটি সবকিছুর জন্য জাভা একটি অন্তর্নির্মিত ...


নিষিদ্ধ, "বিল্ট-ইন বেস-রূপান্তর ফাংশন" এর আওতায় এটি কী ফিট করে না?
ফ্লিপট্যাক

@ Flp.Tkc আমি আসলে বেস-রূপান্তর করছি না। bitCountহুডের নীচে কীভাবে পরিচালিত হয় আমার কোনও ধারণা নেই ।
অকর্মা

এটি কাজটি করার জন্য কেবল একটি বুলেটিন ব্যবহার করার মতো মনে হচ্ছে তবে ঠিক আছে ...
ফ্লিপট্যাক

@ Flp.Tkc এটাই ... ঠিক তাই কি? এমনকি আমি সমস্ত প্রয়োজনীয় গ্রন্থাগারও অন্তর্ভুক্ত করছি (কোনও নেই)। এটি ভাষার শক্তি প্রদর্শন করছে! সম্পর্কিত মেটা
পোকে

1

টিআই-বেসিক (টিআই -৪৮ প্লাস সিই), 30 বাইট

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

টিআইবি-বেসিক একটি tokenized ভাষা, সব টোকেন কিন্তু remainder(হয় এক বাইট , বাকি দুই


সাইটে স্বাগতম!
জেমস

1

পিএইচপি, 36 বাইট

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

ধরে নেওয়া $nহল পরীক্ষা করা নম্বর, এর জন্য পিএইচপি বিজ্ঞপ্তি দেখায়$o এবং $n0 হলে ঠিক কাজ করে না (কিছুই আউটপুট করে)।

পিএইচপি, 53 বাইট

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

কমান্ড-লাইন ইনপুট গ্রহণ করে, পিএইচপি বিজ্ঞপ্তি প্রদর্শন করে না এবং 0 এর জন্য সঠিকভাবে আউটপুট দেয়।


সাইটে স্বাগতম! :)
জেমস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.