শূন্য থেকে দূরে থাকুন


41

কার্য

একটি অ-নেতিবাচক পূর্ণসংখ্যা দেওয়া n, আউটপুট 1যদি nহয় 0, এবং আউটপুট মান nঅন্যথায়।

ইনপুট

একটি অ-নেতিবাচক পূর্ণসংখ্যা।

  • আপনি ইনপুট স্ট্রিং গ্রহণ করতে চান, তবে স্ট্রিং নিম্নলিখিত Regex মেলে হবে: /^(0|[1-9][0-9]*)$/অর্থাৎ এটা কোনো নেতৃস্থানীয় শূণ্যসমূহ আছে না যখন এটা ছাড়া, 0
  • আপনি যদি সত্যিকারের পূর্ণসংখ্যাকে ইনপুট হিসাবে স্বীকার করেন, আপনি ধরে নিতে পারেন যে পূর্ণসংখ্যাটি ভাষার হ্যান্ডলিং সক্ষমতার মধ্যে রয়েছে।

আউটপুট

একটি ধনাত্মক পূর্ণসংখ্যা, উপরে উল্লিখিত। শীর্ষস্থানীয় জিরো অনুমোদিত নয়। আপনার আউটপুটটি রেজেক্সের সাথে মিলবে /^[1-9][0-9]*$/

Testcases

input output
    0      1
    1      1
    2      2
    3      3
    4      4
    5      5
    6      6
    7      7

স্কোরিং

এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।

স্ট্যান্ডার্ড লুফোলস প্রযোজ্য।


1
আপনার সম্ভবত টিএনবি সিএমসির একটি লিঙ্ক রাখা উচিত , যেহেতু এই চ্যালেঞ্জটি এসেছে।
mbomb007

উত্তরটির একটি পূর্ণ ক্রিয়াকলাপ হওয়া দরকার, না এটি শরীর হতে পারে?
কালেব ক্লেভেটার

1
@ কালেবক্লেভেটার পিপিসিজিতে ডিফল্ট নিয়মটি হ'ল উত্তরটি কোনও ফাংশন বা একটি সম্পূর্ণ প্রোগ্রাম, তবে স্নিপেট নয়।
ফাঁস নুন

আমরা একটি অগ্রণী শূন্য সঙ্গে আউটপুট মুদ্রণ করতে পারেন?
এমডি এক্সএফ

@ এমডিএক্সএফ হ্যাঁ, আপনি পারেন।
লিকি নুন

উত্তর:


18

সি (জিসিসি), 14 13 বাইট

f(n){n=n?:1;}

n?:1অন্যান্য সি উত্তরের মন্তব্যে আমাকে কৌতুকের কথা মনে করিয়ে দেওয়ার জন্য @ বিটসেগকে ধন্যবাদ !

এটি অনলাইন চেষ্টা করুন!

সি, 17 বাইট

f(n){return!n+n;}

এটি অনলাইন চেষ্টা করুন!

সি, 16 বাইট

#define f(n)!n+n

এটি অনলাইন চেষ্টা করুন!



1
@ বিটসেগ কারণ এটি ম্যাক্রো। সংকলক এটি 3*!n+nসমান হিসাবে দেখায় 3*0+5
স্টেডিবক্স

1
আমি জানি, তবে আমি মনে করি আপনার গাণিতিক অপারেটরগুলি সরাসরি "রিটার্ন" মানগুলিতে প্রয়োগ করতে সক্ষম হওয়া উচিত, এজন্য ম্যাক্রোগুলির চারপাশে প্রথম বন্ধনী স্থাপন করা সাধারণ অভ্যাস। আমি শুধু মনে করি না যে ম্যাক্রোটি বৈধ।
betseg

4
@ বিটসেগ আমি মনে করি না কোড গল্ফের এটি প্রয়োজন। আমি সি ম্যাক্রোগুলি সহ কোনও কোড গল্ফের উত্তর কখনও দেখিনি।
স্টেডিবক্স

1
@ হুকানকোড টিআইও লিঙ্কগুলি দেখুন। আপনাকে একটি যুক্ত করতে হবে mainযা থেকে ফাংশন / ম্যাক্রো fবলা হয়। একটি সমাধানের জন্য ডিফল্টরূপে একটি সম্পূর্ণ প্রোগ্রাম হওয়ার প্রয়োজন হয় না। জিসিসি-নির্দিষ্ট সংস্করণ অন্য সংকলকটিতে সংকলন করতে পারে বা নাও পারে এবং অন্য সংকলকটিতে সংকলন করার সময় এটি সঠিকভাবে চলতেও পারে এবং নাও পারে।
স্টিডিবক্স

17

জাপট , 2 বাইট

ª1

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

ªজেএস এর ||অপারেটরের জন্য একটি শর্টকাট । জাপ্টের অন্তর্নিহিত ইনপুট রয়েছে, সুতরাং এই প্রোগ্রামটি গণনা করে input||1এবং ফলাফলটি স্পষ্টভাবে STDOUT এ প্রেরণ করা হয়।

w1পাশাপাশি কাজ করবে, ইনপুট সর্বাধিক গ্রহণ এবং 1


16

অ্যালিস , 7 বাইট

1/s
o@i

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

1   Push 1. Irrelevant.
/   Reflect to SE. Switch to Ordinal.
i   Read all input as a string.
    Reflect off bottom right corner. Move back NW.
/   Reflect to W. Switch to Cardinal.
1   Push 1.
    IP wraps around to last column.
s   Sort swap: implicitly convert the input to an integer. Then, if the top stack 
    element is less than the one below, the two are swapped. It basically computes
    min and max of two values at the same time, with max on top.
/   Reflect to NW. Switch to Ordinal.
    Immediately reflect off the top boundary. Move SW.
o   Implicitly convert the result to a string and print it.
    Reflect off bottom left corner. Move back NE.
/   Reflect to S. Switch to Cardinal.
@   Terminate the program.

15

জাভাস্ক্রিপ্ট (ES6), 7 বাইট

n=>n||1

5
বিকল্প: n=>n+!n(কমপক্ষে আমি মনে করি)
ম্যাথু রোহ

@ সিগএসইজিভি হ্যাঁ, এটি সত্যই কার্যকর হবে। (এটিও হতে পারে n|!n, যদিও এটি এক 31-বিট পরিমাণে সীমাবদ্ধ))
আর্নল্ড

এটিকে এন || 1 তে সরলীকৃত করা যেতে পারে। কেবল যেটি মিথ্যা হিসাবে মূল্যায়ন করে তা 0 হয়
উত্তর

1
@ অ্যানসিয়ার্ট যদি আপনার বক্তব্যটি n=>n||1সরল করে দেওয়া যায় n||1, তবে না। গ্রহণযোগ্য উত্তর হ'ল হয় সম্পূর্ণ প্রোগ্রাম বা ফাংশন। ES6 সিনট্যাক্সের n=>do_something_with(n)একটি তীর ফাংশন
আর্নল্ড

1
@ স্ট্যানস্ট্রাম আমাদের nশূন্য না হলে এর মূল মূল্য ফেরত দিতে হবে। একটি বিটওয়াস বা nযখনই সর্বনিম্ন তাত্পর্যপূর্ণ বিট সেট না করা হয় (যেমন। (4|1) === 5) পরিবর্তিত হবে ।
আর্নৌল্ড



12

ভি , 4 বাইট

é0À

এটি অনলাইন চেষ্টা করুন!

আপত্তিজনক কোনও অ-পছন্দসই তবে প্রত্যাশিত আচরণ , সুতরাং আমি এটিকে সত্যই কোনও বাগ বলতে পারি না। ব্যাখ্যা:

ভিমে, কমান্ডগুলি একটি গণনা গ্রহণ করে। উদাহরণস্বরূপ, <C-a>একটি সংখ্যা বৃদ্ধি করবে, তবে 7<C-a>number দ্বারা একটি সংখ্যা বৃদ্ধি করবে However তবে, আপনি 0একটি গণনা হিসাবে ব্যবহার করতে পারবেন না , কারণ

  • 0 ইতিমধ্যে একটি কমান্ড (প্রথম কলামে যান), এবং

  • পাঠ্য সম্পাদকের প্রসঙ্গে, কমান্ডটি 0 বার চালানোর অনুরোধ করা খুব কমই অনুভূত হয়।

এটি কোনও পাঠ্য সম্পাদকের পক্ষে ঠিক আছে তবে গল্ফিং ভাষার জন্য সাধারণত অসচ্ছল, তাই ভি কিছু কমান্ডকে ওভাররাইট করে যাতে এটি 0একটি বৈধ গণনা। উদাহরণস্বরূপ, é, ñ, Ä, এবং কিছু অন্যদের। তবে যেহেতু <C-a>বিল্টিন ভিম কমান্ড তাই এটি ওভাররাইট করা হয় না, সুতরাং এটি ইতিবাচক ইনপুট দিয়ে চালানো দেয়:

N       " N times:
 <C-a>  "   Increment

কিন্তু ইনপুট হিসাবে 0 দিয়ে দৌড়ানো:

0       " Go to column one
 <C-a>  " Increment

সম্পূর্ণ ব্যাখ্যা:

é0          " Insert a 0
  À         " Arg1 or 1 times:
   <C-a>    " Increment

1
এক সময় যে 0গণনা না হওয়া দরকারী। আমি প্রথমে এটি
বিবেচনাও


12

হাস্কেল, 5 বাইট

max 1

ব্যবহারের উদাহরণ: (max 1) 0-> 1

বেশি কিছু বোঝাতে হবে না।



10

আর, 13 বাইট

max(1,scan())

স্টাডিন nথেকে পড়া । এর সাথে pmaxএটি একটি তালিকায় পড়ে এবং +1 বাইটের জন্য তালিকার প্রতিটি উপাদানগুলির উপযুক্ত মানটি ফিরিয়ে দিতে পারে।

এটি অনলাইন চেষ্টা করুন!

আমার মনে রাখা উচিত যে সোভেন হোহেনস্টেইনের 13 বাইটে আরও একটি সূক্ষ্ম আর সমাধান রয়েছে যা আরও 13 বাইট সমাধানের অনুমতি দেয়

(n=scan())+!n

যা আমাকে বিস্মিত করে যে এটি যদি আর এর কম সীমাবদ্ধ।


আরেকটি 13 ব্যবহার সমাধান বাইট pryr: pryr::f(n+!n)। এর চেয়ে ছোট কিছু খুঁজে
পাচ্ছে

9

কিউবিক্স , 6 বাইট

OI!1L@

কোনওরকমে এটি ইউনিট কিউবে এটি ফিট করতে সক্ষম হয়েছে ... এটি অনলাইনে পরীক্ষা করুন!

ব্যাখ্যা

চালানোর আগে কোডটি কিউব নেট হিসাবে সাজানো হয়:

  O
I ! 1 L
  @

আইপি (নির্দেশ পয়েন্টার) এর পরে ডান দিকে মুখ করে I, বাঁ-বাম মুখ ( ) এ রাখা হয় । সেখান থেকে চালিত নির্দেশাবলী হ'ল:

I  Input a number from STDIN and push it to the stack.
!  If the top number is non-zero, skip the next instruction.
1  Push a 1 (only if the input was zero).
L  Turn left. The IP is now on the top face facing the !.
O  Output the top item as a number.

আইপি আবার হিট !, @নীচে মুখ এড়ানোর । এটি সহায়ক নয়, কারণ @প্রোগ্রামটি শেষ করতে আমাদের হিট করা দরকার । আইপি Lআবার হিট করে এবং আরও একবারে L1!Iশেষ হওয়ার আগে বিপরীতে ( ) মাঝের লাইনের মধ্য দিয়ে যায় L, যা শেষ পর্যন্ত আইপিটি চালু করে @








5

মারিওল্যাং , 12 বাইট

;
=[
:<+
 =:

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

মারিও উপরের বাম দিকে শুরু হয়, শুরুতে ডান হাঁটা। তিনি ইনপুট ( ;) থেকে একটি int পড়েন এবং এটিকে বর্তমান মেমরি কোষে সঞ্চয় করেন। তারপরে সে মাটিতে পড়ে ( =) মারছে [, যা বর্তমান ঘর 0 হলে পরবর্তী কমান্ডটিকে উপেক্ষা করে।

যদি ঘরটি 0 না হয় তবে সে বামদিকে হাঁটা শুরু করবে ( <), বর্তমান সেলটি একটি ইনট ( :) হিসাবে আউটপুট করবে এবং তার মৃত্যুর (প্রোগ্রামের শেষের দিকে) পড়বে।

ঘরটি যদি 0 হয় তবে সে বাম দিকে ঘুরার আদেশটি উপেক্ষা করে ডানদিকে হাঁটতে থাকবে। তিনি বর্তমান সেল ( +) বাড়ান, এটিকে আউটপুট করেন এবং তার মৃত্যুতে পড়ে যান।


5

ব্রেন-ফ্লাক , 22 , 10 বাইট

({{}}[]{})

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

যদি ইনপুটটি শূন্য-না হয়, তবে {{}}স্ট্যাকের বাইরে সমস্ত কিছু পপ করবে এবং ইনপুটটিতে মূল্যায়ন করবে। যদি এটি শূন্য হয় তবে কিছুই পপ হবে না এবং এটি শূন্যে মূল্যায়ন করবে। তাই চলমান ({{}})দেয়

নন-জিরো:

n

জিরো:

0
0

এই মুহুর্তে, আমরা স্ট্যাকের উচ্চতা যুক্ত করব (শূন্যের জন্য 0 নয়, শূন্যের জন্য 1) এবং স্ট্যাকের বাইরে আরও একটি মান পপ করব। (যেহেতু স্ট্যাকটি 0 টির একটি অসীম সংখ্যার সাথে প্যাড করা হয়েছে, এটি শীর্ষ 0 বা একটি অতিরিক্ত 0 পপ করবে)


খুব ভাল কাজ, তবে সংক্ষিপ্ত সমাধানটি নয়: কোডগলফ.স্ট্যাকেক্সচেঞ্জ
/


4

হেক্সাগনি ,7 6 বাইট

)?<@.!

সম্প্রসারিত:

 ) ?
< @ .
 ! .

এটি অনলাইন চেষ্টা করুন!

মার্টিনকে ধন্যবাদ 1 বাইট সংরক্ষিত!

যদি নম্বরটি ননজারো হয় তবে এটি মুদ্রণ করুন, অন্যথায় এটিতে একটি যুক্ত করুন এবং তার পরিবর্তে মুদ্রণ করুন।



4

পাইথন, 15 বাইট

lambda n:n or 1

শুধু n or 1, 6 বাইট না কেন ?
ড্রিপসটে

2
কারণ এটি কেবল একটি স্নিপেট, যখন আমরা সাধারণত সম্পূর্ণ প্রোগ্রাম বা ফাংশন দিয়ে উত্তর করি। আমি নিশ্চিত নই যে এটি কোথাও কোথাও কিছু নিয়মে স্পষ্ট করে বলা হয়েছে, তবে কমপক্ষে এটি ডি-ফ্যাক্টোর স্ট্যান্ডার্ড।
ডানিরো

ট্রাইকোপলাক্সের উদ্ধৃতি : The rules are not terribly clear. I think we have a consensus on meta that REPLs count, but as a separate language, which would allow snippets in many cases, but snippets are not permitted according to this meta post-> কোডগলফ.মেটা.স্ট্যাকেক্সেঞ্জিং
::

@ ট্রাইকপ্লেক্স 1or nসবসময় ফিরবে 1, তাই না?
ডানিরো

1
একই 15-বাইট বাইট গণনা সহ বিকল্প:lambda n:n|1>>n
কেভিন ক্রুইজসেন

4

ডিসি, 11 বাইট

[1]sf?d0=fp

[1]sfরেজিস্টার এফ এ একটি ম্যাক্রো সংরক্ষণ করে যা 1 স্ট্যাকের শীর্ষে ঠেলে দেয়, ?ইনপুট পড়ে, d0=fম্যাক্রো এফ চালায় ইনপুট 0 pহলে স্ট্যাকের শীর্ষটি মুদ্রণ করে।

টেস্ট:

$ dc -e "[1]sf?d0=fp" <<< 0
1
$ dc -e "[1]sf?d0=fp" <<< 1
1
$ dc -e "[1]sf?d0=fp" <<< 42
42


4

জাভা 8, 10 বাইট

i->i<1?1:i
  • ধন্যবাদ @LeakyNun সংরক্ষণের জন্য - 1 বাইট
    • এটি একটি অ-নেতিবাচক পূর্ণসংখ্যার লক্ষ্য করে নি

3
i==0প্রতিস্থাপন করা যেতে পারেi<1
লিকি নুন


3

গণিত, 9 8 বাইট

মার্টিন ইন্ডার:

#~Max~1&

প্রথম ধারণা:

#/. 0->1&

সঙ্গে প্রতিস্থাপন 0সঙ্গে খাঁটি ফাংশন 1। স্থানটি প্রয়োজনীয় বা এটি মনে করে যে আমরা ভাগ করছি .0


3

-L এবং -p পতাকাগুলির জন্য পার্ল 5, 6 + 2 বাইট

$_||=1

স্টিডিন থেকে পৃথক লাইনে ইনপুট নেয়। পতাকা নিয়ে চলে -lp

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