ASCII টেবিলটি মুদ্রণ করুন


28

কাজটি হ'ল ASCII টেবিলের n অক্ষর প্রদর্শন করা ।

আপনি কোনও ফাংশন লিখতে পারেন (বা এমন কোনও প্রোগ্রাম যা আর্গুমেন্টটিকে প্যারামিটার হিসাবে গ্রহণ করে, এসটিডিআইএনও অনুমোদিত হয়) যা একটি প্যারামিটার এন নেয় যা প্রিন্ট করার জন্য শেষ অক্ষরের সূচক হবে।

কাজটি বেশ সহজ, সুতরাং উদাহরণ হিসাবে এখানে পাইথন ২.7 এ একটি সম্ভাব্য প্রয়োগ রয়েছে:

(lambda n:map(chr, range(n)))(256)

যেমন আমি বলেছি এটি একটি সহজ কাজ। সুতরাং এটি কোড-গল্ফ এবং সংক্ষিপ্ততম কোডগুলির জয়!

সম্পাদনা

আপনারা কেউ কেউ উল্লেখ করেছেন যে এই কোডটি ফলাফল মুদ্রণ করে না। এটি ইংরেজী ;-) ভাষায় সমস্যাটি ব্যাখ্যা করার জন্য আমি লড়াই করতে পারি বলে এটি কেবল একটি উদাহরণ।

EDIT2

সংক্ষিপ্ততম কোড না হলেও, কোনও প্রোগ্রামিং ভাষায় উত্তরটি নির্দ্বিধায় পোস্ট করুন। সম্ভবত সেখানে কিছু আকর্ষণীয় বাস্তবায়ন আছে!

EDIT3

উদাহরণটি স্থির করে রাখুন যাতে এটি ফলাফল মুদ্রণ করে।


1. এটি একটি ফাংশন হতে হবে? ২. আপনার রেফারেন্স কোড অনুসারে এন প্রথম অক্ষর হবে যা মুদ্রিত হয়নি।
ডেনিস

2
আসলে রেফারেন্স কোড কিছুই প্রিন্ট করে। এটি কেবলমাত্র অক্ষরের একটি তালিকা ফেরত দেয় এবং ফলাফলের সাথে যা চায় তাই করতে চায় না RE
manatwork

1
কেউ দয়া করে ডাউনটোটটি ব্যাখ্যা করতে পারেন? আমি দুঃখিত যদি আমার ইংরেজিটি ভাল না হয়। যদি প্রশ্নের মধ্যে কিছু অস্পষ্ট থাকে তবে দয়া করে আমাকে বলুন।
oopbase

1
for x in range(input()):print chr(x)আপনি যদি নিজের উদাহরণটি সম্পাদনা করতে চান তবে প্রকৃতপক্ষে অক্ষরগুলি মুদ্রণ করবেন।
FryAmTheEggman

2
নোটার [i for i in range(n)]সাথে বেশ মিল রয়েছেrange(n)
njzk2

উত্তর:


19

সিজেম, 4 বাইট

ric,

সম্পূর্ণ প্রোগ্রাম যা STDIN ( অনলাইন দোভাষীর ইনপুট ক্ষেত্র ) থেকে পড়ে।

এটি কেবল কার্যকর করে range(chr(int(input()))), এই ,যুক্তিটি যদি একটি চরিত্র হয় তবে কোনও প্রত্যাবর্তনকে একটি অ্যারে দেয় এমন সত্যের সুবিধা গ্রহণ করে ।

আমি ডিবগুলিকে c,(2 বাইট) কল করি , কেবলমাত্র যদি ইনপুটটি ইতিমধ্যে স্ট্যাকের মধ্যে উপস্থিত থাকে তবে অনুমতি দেওয়া হবে।


আপনার কি কিছু ইনপুট নির্দিষ্ট করতে হবে? অনলাইন রানার কেবল কোডটি আউটপুট করে।
manatwork

12
@ মান্যাটওয়ার্ক: মাত্র এক সেকেন্ড আপনি এগুলি পোস্ট করার সময় আপনাকে তাড়াহুড়া করতে হবে ...;)
ডেনিস

এতে আমি কিছুটা বিভ্রান্ত হয়ে পড়েছি। 0 (ওরফে 0 সি) এর চরিত্রটি এর পরে মুদ্রণ করা থেকে অন্য কোনও কিছু আটকাচ্ছে। ধনী, (কাজটি ঠিকঠাক বলে মনে হচ্ছে This এর অর্থ কোডটি কাজ করে না
কাইনে

1
@ কেইন: ইন্টারনেট এক্সপ্লোরার সি ++ তে রচিত, যা নাল-টার্মিনেটেড স্ট্রিং ব্যবহার করে না। মতে এই , নাল অক্ষর এইচটিএমএল 5-এ পার্স ত্রুটি আছে; ব্রাউজারকে অবশ্যই এটির সাথে প্রতিস্থাপন করতে হবে বা নথির প্রক্রিয়াকরণ বাতিল করতে হবে।
ডেনিস

4
মনে রাখবেন যে আপনাকে যথেষ্ট পরিমাণে প্রবেশ করতে হবে n, কারণ প্রথম কয়েক ডজন এএসসিআইআই অক্ষর অন-মুদ্রণযোগ্য অক্ষর। মজাদার ঘটনা: এই প্রোগ্রামটি ইউনিকোড টেবিলটিকেও
ছাড়িয়েছে

25

ব্রেইনফাক - 169 146 142 বাইট

-[+>+[+<]>+]>+>>,[>,]<[<]<[->>[->]<[<]<]>>>[[<[-<+<+<+>>>]+++++++++[<[-<+>]<<[-<+>>>+<<]<[->+<]>>>>-]]<,<<,>[->>>+<<<]>>>---------->]<-[->.+<]

সীমাবদ্ধতা:

  • ইওএফ অবশ্যই 0 হতে হবে
  • 8-বিট মোড়ানোর ঘরগুলির প্রয়োজন
  • ^ এর কারণে, 256 দ্বারা মোডগুলি ইনপুট

এখানে সংক্ষিপ্ত উত্তর না, তবে ওহে, ব্রেইনফাক! এটি সংখ্যার গ্যারান্টি ছাড়াই মানুষের পাঠযোগ্য ইনপুট প্রয়োজন তা বাদ দিয়ে এটি সত্যই, সত্যই একটি ভাল ব্রেইনফাক চ্যালেঞ্জ হবে। এটিকে 3 টি অক্ষর দীর্ঘ করতে আমার নেতৃস্থানীয় শূন্যগুলির জন্য ইনপুট লাগতে পারে তবে এটি মজাটি কী? : ডি এভাবে ইনপুট নেওয়ার ক্ষেত্রে একটি বড় সমস্যা হ'ল বর্তমান সেল শূন্য কিনা ব্রেনফাকের একমাত্র শাখা বা লুপিং কাঠামো পরীক্ষা করে। যখন ইনপুটটিতে শূন্য থাকতে পারে তখন এটি আপনার কোডগুলিকে নেওয়া উচিত নয় শাখাগুলি নিতে পারে। এই সমস্যাটি সমাধান করার জন্য, আমি ইনপুট প্লাস 1 এর প্রতিটি অঙ্ক সঞ্চয় করি , তারপরে শেষ সম্ভাব্য দ্বিতীয়টিতে অতিরিক্তটি বিয়োগ করে। এইভাবে, আমি সর্বদা জানি যে আমার শূন্যস্থানগুলি।

আমি বলেছিলাম যে ইনপুট পার্স না করেই এটি দুর্দান্ত মস্তিষ্কের চ্যালেঞ্জ হত। তা কেন? ঠিক আছে, আমরা ভেবে দেখি যে আমরা একটি সংখ্যার ইনপুট নিই না। আমরা বলব চ্যালেঞ্জটি "ইনপুটটির একটি বাইট দেওয়া, সেই বাইটের নীচে সমস্ত ASCII অক্ষর আউটপুট"। আমার উত্তরটি কী হবে তা এখানে:


ব্রেনফাক - 8 বাইট

,[->.+<]

এটা বেশ পার্থক্য! আসল প্রোগ্রামটি ইনপুট সংগ্রহের জন্য 135 টি নির্দেশাবলী ব্যবহার করে (প্রোগ্রামের 95% এরও বেশি!), কারণ এটি কোনও মানব টাইপ করে। একটি বাইট হিসাবে সংখ্যা সঞ্চয় করুন এবং দিতে যে আমাকে, এবং এটি শুধুমাত্র একটি সময় লাগে।

(মজার ঘটনা: আপনি যদি অনুমানমূলক প্রোগ্রামটি বুঝতে পেরেছিলেন, তবে অভিনন্দন! আপনি সম্পূর্ণরূপে ব্রেইনফাক বুঝতে পারেন whole পুরো ভাষার কেবল আটটি কমান্ড রয়েছে এবং সেই প্রোগ্রামটি প্রতিটি একবারেই ব্যবহার করার জন্য ঘটেছে))

ব্যাখ্যা

-[+>+[+<]>+]>+               abuse 8 bit wrapping to put 47 in cell 4

>>,[>,]                      starting in cell 6; get each character of input

<[<]<[->>[->]<[<]<]          subtract the value of cell 4 from each input character
                             '0' has an ascii value of 47 so subtracting 47 from each
                             digit gives you that digit's value plus 1

>>>[                         if the number is in more than one cell
                             (when the program first starts this means "if the input has
                             more than one digit")

[<[-<+<+<+>>>]               copy first input cell to 3 new cells

+++++++++[<[-<+>]<<          do some fancy addition magic to multiply that value by 10
[-<+>>>+<<]<[->+<]>>>>-]]

<,<<,>                       clean up a bit (abusing comma to set cells to 0)

[->>>+<<<]>>>                add the value to the next cell of input

----------                   because we multiplied (the digit plus 1) by 10; the answer
                             is 10 too high; so subtract 10

>]                           if the input is still in multiple cells; do the song and
                             dance again (multiply by 10; add to next cell; subtract 10)

<-                           we never got a chance to fix the final digit; so it's still 1
                             too high

               ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
               ;;         we have now finished processing input         ;;
               ;;     the tape is empty except for the current cell     ;;
               ;;  the current cell contains the number that was input  ;;
               ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[                            while the cell containing input != 0

-                            subtract 1 from it

>.+                          go a cell to the right; output that cell; then add 1

<]                           repeat

নিস! প্রয়াসের জন্য অবশ্যই +1 :-)
15-15

1
আপনি আউটপুট অংশে কিছু বাইট সংরক্ষণ করতে পারেন: >[-]<[->.+<]বর্তমান ঘরটির পাশের ঘরটি 0 তে সেট করুন, তারপরে বর্তমান সেলটি গণনা করুন এবং তার সাথে সাথে সেলটি বৃদ্ধি করুন এবং একই সাথে মানটি মুদ্রণ করুন।
শুজাল

@ শুু এটি একটি দুর্দান্ত পয়েন্ট! আমি মোটেই ভাবিনি। সংক্ষিপ্ত হওয়া ছাড়াও, এটি বড় ইনপুটগুলিতে শ্বাসরোধে আমার যে সমস্যাটি ছিল তা সংশোধন করে এবং এটি সম্ভবত দ্রুত! ধন্যবাদ :)
আন্ডারগ্রাউন্ডোমোনাইল

হ্যাঁ, এখন অনেক দ্রুত। আমারও সেই >[-]<অংশের দরকার নেই কারণ আমি ইতিমধ্যে একটি খালি ঘরের পাশে ছিলাম। :)
আন্ডারগ্রাউন্ডোমোনাইল


12

পাইথ , 4 বাইট

VQCN

মূলত পাইথন 3 প্রোগ্রামটির একটি অনুবাদ:

for N in range(eval(input())):print(chr(N))

11

বেফুঞ্জ 93 - 23 21

&> :#v_,>:#,_@
 ^-1:<

বেফুঞ্জ 93 - 15 13 (ইনগো বার্ক দ্বারা)

এইটি তালিকার বিপরীতে মুদ্রণ করে, তবে ওপি কেবল বলেছিল যে আমাদের প্রথম nঅক্ষরগুলি মুদ্রণ করা দরকার , এটি নয় যে এটি ক্রমযুক্ত হয়।

&>::>v
@^-1,_

Befunge98 (";" অপারেটরের জন্য, @ কাসরানের উত্তর দেখুন ) এর দিকে না গিয়ে আর কোনও গল্ফযোগ্য হতে পারে না

এটি এখানে চেষ্টা করুন:


আমি আশা করি আপনি আপত্তি করবেন না যে আমি এখান থেকে একটি ইনলাইন দোভাষী ব্যবহার করেছি :)
ইনগো বার্ক

প্রশ্ন না বলে যে আমরা এটা কোন অনুক্রমে, তাই এই পাঁচটি বাইট খাটো প্রিন্ট আবশ্যক না: &> #- #1:# :#,_@(এটা শুধু এটা বিপরীত ছাপে)
ইঙ্গো Burk

আমি মোট 15 টির জন্য অন্য বাইট বন্ধ করে দিয়েছি new নতুন লাইনের কারণে আমি এটি আপনার পোস্টে সম্পাদনা করব।
ইনগো বার্ক

অতিরিক্ত গল্ফিংয়ে ভাল অভিনয় করেছেন :) ইনলাইন দোভাষী হিসাবে, আমি জানতাম না যে সেখানে একজন ছিল। এটি দুর্দান্ত, ধন্যবাদ :)
karhell

দোভাষী সংযুক্ত চ্যালেঞ্জ থেকে নতুন। আমি কেবল ভেবেছিলাম আপনার উত্তরটি দেখলে আমি এটি ব্যবহার করব। :)
ইনগো বার্ক

8

জাভা, 151 128 77 62 56 বাইট

প্রথমে কোড-গল্ফ করার চেষ্টা করুন।

void f(int n){for(char i=0;++i<=n;System.out.print(i));}

ব্যবহার:

import java.util.Scanner;
class A {

    public static void main(String[] a) {
        int num = new Scanner(System.in).nextInt();
        new A().f(num);
    }

    void f(int n) {
        for (char i = 0; ++i <= n; System.out.print(i));
    }
}

মারাত্মক বাইট হ্রাসের জন্য @ শুজল, @ ফ্ললার, @ ইঙ্গো বার্ক এবং @ লভজোকে ধন্যবাদ


1
স্ক্যানারটি খোলার সময় আপনি ইনটি ঘোষণা করে কিছু অক্ষর সংরক্ষণ করতে পারেন: int i,n=new Scanner(...এবং লুপটি এতে পরিবর্তন করে for(;++i<n;)। এছাড়াও, আপনাকে প্রার্থনা করার দরকার নেই Character.toString। আপনি কেবল System.out চার্ট মান খাওয়াতে পারবেন এবং এটি আনন্দের সাথে আউটপুট দেবে।
শুজাল

1
চ্যালেঞ্জটি আপনাকে aইনপুট হিসাবে ব্যবহারের অনুমতি দেয় । এবং আমি মনে করি আপনি forইনক্রিমেন্ট for(;++i<n;System.out.print((char)i));
প্লেসকে

1
আপনাকে কোনও ফাংশন লেখার অনুমতি দেওয়া হয়েছে, সুতরাং পুরো ক্লাস এবং সমস্ত কিছুর প্রয়োজন নেই।
ইনগো বার্ক

1
আপনি কি নিশ্চিত? স্পষ্টতই, এর ++i<n+1সমতুল্য হওয়া উচিত ++i<=n=তবে সেখানে নোট করুন ! এটি কেবল একটি বাইট সংরক্ষণ করে। এটা আমার জন্য কাজ করে.
ইনগো বার্ক

1
সুতরাং আমরা void f(int n){int i=0;for(;++i<=n;System.out.print((char)i));}62 বাইট যা নিচে আসা । কমপক্ষে আমি এখন গল্ফ আর দেখতে পাচ্ছি না। :)
ইনগো বার্ক

6

APL, 5

⎕UCS⍳

ব্যবহারের উদাহরণ:

⎕UCS⍳256

1
আপনি একটি dfn করতে হবে না। শুধু ⍳UCS⍳ ঠিকঠাক কাজ করবে। সুতরাং 5 টি অক্ষর
মরিস জুকা

1
আপনার 127 এর বেশি কোড পয়েন্টগুলি সমর্থন করতে হবে না Just কেবলমাত্র fineএভি ভাল কাজ করবে। সুতরাং 4 টি অক্ষর
অ্যাডাম

6

জাভাস্ক্রিপ্ট, ES6 - 52 58 56 53 44 42 বাইট

n=>String.fromCharCode(...Array(n).keys())

ফায়ারফক্স কনসোলে এটি আটকান। হিসাবে চালান f(NUM)

প্রথমটি ইনপুটটি সঠিকভাবে গ্রহণ না করায় এটি দীর্ঘ করতে হয়েছিল।

3 নিচে, ধন্যবাদ edc65! নিচে 44 সুইভেল ধন্যবাদ!


1
এটি সত্যই প্যারামিটার বা ইনপুট পরিচালনা করে না।
manatwork

70 কে কেবল আলাদা সংখ্যায় পরিবর্তন করুন; এটা ইনপুট।
স্কিমোনস্টার

ঠিক আছে, আমি ইনপুট নিতে এটি আপডেট করেছি, 6 বাইটের দামে।
স্কিমোনস্টার

3
-2: এফ = এন => [... অ্যারে (এন)]। মানচিত্র ((v, i) => স্ট্রিং.ফর্মচার্ড (i))
edc65

2
44 অক্ষর! f=n=>String.fromCharCode(...Array(n).keys())
সুইভেল

6

হাস্কেল, 17 23 বাইট

flip take['\0'..]

আমদানি না করে আরও ভাল কিছু করা সম্ভব কিনা তা নিশ্চিত নয়।

সম্পাদন করা

আমার প্রথম সমাধানটি আসলে ফলাফলটি মুদ্রণ করে নি , সুতরাং এর জন্য আরও 6 টি চর পড়ুন:

print.flip take['\0'..]

এছাড়াও, সংক্ষিপ্ত নয় (প্রিন্টিং সহ 25 টি অক্ষর, 19 ব্যতীত) নয়, তবে একটি আকর্ষণীয় বিকল্প পদ্ধতির (যদিও এটি 'ডেটা.লিস্ট' প্রয়োজন, যদিও):

print.((inits['\0'..])!!)

এটি আসলে ফলাফল মুদ্রণ করে না।
nyuszika7h

@ nyuszika7h এখন এটি করেন
জন ডিভোরাক

(`take`['\0'..])একটি বাইট সংরক্ষণ করে।
লাইকনি


4

সি, 31 30 28 27

k;f(n){putch(k++)<n&&f(n);}

পুটচ যেহেতু বেআইনী, তাই এখানে সম্পূর্ণরূপে অনুগত সংস্করণ:

k;f(n){putchar(k++)<n&&f(n);}

মূল থেকে কল করতে হবে:

main(){f(255);}

সম্পাদনা: পুটচর রিটার্ন মানটি গ্রহণ করে উন্নত এডিআইটি
2: পুনরুক্তির মাধ্যমে অন্য একটি চরিত্র দ্বারা হ্রাস


1
পুচ একটি মানহীন ফাংশন। এছাড়াও, আমি জিজ্ঞাসা করতে পারি কেন এই উত্তরটি নিম্নচালিত হয়েছিল?
স্টান্টডুড

পছন্দ করুন সর্বোপরি, এটি সংক্ষিপ্ততরগুলির মধ্যে একটি।
তাকরা

4

পার্ল, 17 বাইট

say chr for 0..$_

1
অনেক বেশি প্রথম বন্ধনী। print chr for 0..$ARGV[0]
manatwork

তুমি ঠিক বলছো! আমি
পার্লটি

1
আপনি 2 বাইট সংরক্ষণ করার shiftপরিবর্তে ব্যবহার করতে পারেন $ARGV[0]
nyuszika7h

আপনি যদি বিভিন্ন লাইনে অক্ষরগুলি মুদ্রণের অনুমতি পেয়ে থাকেন তবে আপনি ব্যবহার করতে পারেন say। এছাড়াও, আপনি যদি ওয়ান-লাইনার হিসাবে এটি করেন তবে চরিত্রের সংখ্যা ছোট হয় -n। অক্ষর echo "90" | perl -nE'say chr for 0..$_'হিসাবে গণনা করা হবে 1817জন্য say chr for 0..$_প্লাস 1জন্য n
hmatt1

তুমি ঠিক বলছো. তবে sayপার্লের প্রতিটি সংস্করণ নিয়ে কাজ করবে না।
ডেমনোগোনিস

3

সিজোম, ৩

,:c

আমি যুক্তিটিকে শীর্ষ স্ট্যাক উপাদান হিসাবে ধরে নিয়েছি।

ব্যবহারের উদাহরণ:

256,:c

ri,:c


3

awk - 27

{while(i<$0)printf"%c",i++}

স্টিডিনে প্যারামিটারটি দেওয়ার জন্য এটি চালান:

awk '{while(i<$0)printf"%c",i++}' <<<96

কেবল মজাদার জন্য: "ইতিবাচক সংস্করণটি মনে করুন" একটি সংজ্ঞা দিয়ে শুরু yes:

yes|head -96|awk '{printf"%c",NR-1}'

NR-1মুদ্রণ করার জন্য প্রয়োজন হয় (char)0জন্য NR==1। :-(

এবং কেন আমাদের একটি noআদেশ নেই? কিন্ডা মানে!


1
alias no='yes no'
nyuszika7h

... তবে তারপরে আমাকে সেই

3

জে - 5 বাইট

{.&a.

{.হেড, a.হ'ল বর্ণমালা (সমস্ত অক্ষরের একটি তালিকা) এবং &সেগুলি বন্ধন করে, যার মতো একটি একাকী ক্রিয়া তৈরি হয়:

{.&a. 100 NB. first 100 characters

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

  ijconsole <<< '127 {. a.' | hd

লক্ষ করুন যে বর্ণমালা হ'ল ASCII নয়।
FUZxxl

আপ {.&a. 127, এটা না?
jpjacobs

না কারণ জেতে কিছু নিয়ন্ত্রণ চরিত্রের পরিবর্তে বক্স অঙ্কন অক্ষর রয়েছে।
FUZxxl

আসলে, একটি ফাইলে এটি লিখতে এবং একটি হেক্স দর্শকের সাথে এটি পরিদর্শন করে আমাকে বলে যে জে সঠিক মানগুলি ছাড়ায় (0x00 0x01, ...)। এটি কেবল জে ইন্টারপ্রেটার / আইডিই সেই মানগুলিকে নিয়ন্ত্রণের অক্ষরের পরিবর্তে বক্সড্রাইং অক্ষর হিসাবে ব্যাখ্যা করে। এটি অন্য সমস্ত ভাষা যেমন charসমান ব্যবহার করে বা ঠিক তেমনই করে।
jpjacobs

এটি অদ্ভুত কারণ আমি এটি আমার ইউনিক্স বাক্সে পরীক্ষা করেছি এবং এটি সত্যই কিছু কোড পয়েন্টের জন্য ইউনিকোড অক্ষর আউটপুট করেছিল।
FUZxxl

3

জিএস 2, 2 বাইট

V.

এই প্রতিযোগিতা করা উচিত, আমি মনে করি! এটি জিএস 2 এর প্রথম দিনগুলিতেও কাজ করবে। এখানে চেষ্টা করুন।


1
এই সংস্করণটি সাফল্যের সাথে পরীক্ষা করা হয়েছে , যা এক মাসের মধ্যে চ্যালেঞ্জের পূর্বাভাস দেয়।
ডেনিস

3

ব্রেইনফাক, 44 বাইট

,
[
  <[>++++++++++<-]
  -[>-<-----]
  >+++>,
]
<[>.+<-]

ট্রেলিং করা নতুন লাইন ছাড়াই দশমিক স্ট্রিং আশা করে।

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

[0, max_cell_size]ব্রেনফাকের মধ্যে পরিসীমাটিতে পূর্ণসংখ্যা পড়া কঠিন নয়। আমি আপনাকে নিজে থেকেই একটি পরিষ্কার পদ্ধতি আবিষ্কার করতে উত্সাহিত করি। আমি এটিকে একটি প্রাথমিক স্তরের অনুশীলন হিসাবে বিবেচনা করি। (একটি ঘরের সংখ্যাগত মান মুদ্রণের বিপরীত ক্রিয়াকলাপ আরও জড়িত, এবং এটি একটি মধ্যবর্তী স্তরের কাজ হিসাবে বিবেচনা করা যেতে পারে))

এখানে একটি 58-বাইট সংস্করণ যা 2568-বিট বাস্তবায়নে পরিচালনা করতে পারে :

,
[
  <[<+> >++++++++++<-]
  -[>-<-----]
  >+++>,
]
<[>]
-<<[>.]
>[>+.<-]


কেন আমি এই ভেবে দেখিনি ??? এটা বুদ্ধিমান !!!
ফিনডাব্লু

আমি কি ভবিষ্যতের উত্তরগুলিতে ব্যবহার করতে এই ধার নিতে পারি?
ফিনিউ

1
@ ফিনডব্লিউ আমি অনুমান করছি যে আপনি এই মেটা পোস্ট সম্পর্কে জানেন না ।
মিচ শোয়ার্জ

2

গল্ফস্ক্রিপ্ট - 5

@ ডেনিসকে ধন্যবাদ

~,''+

1
~,""+সংক্ষিপ্ত এবং সঠিকভাবে STDIN থেকে ইনপুট প্রক্রিয়া করে।
ডেনিস

@ ডেনিস যা আমার পক্ষে কোনও আউটপুট তৈরি করে না ...
বিটা

1
আপনি অনলাইন ইন্টারপিটার ব্যবহার করছেন? STDIN থেকে ইনপুটটি সঠিকভাবে অনুকরণ করতে আপনাকে ব্যবহার করতে হবে, উদাহরণস্বরূপ ;"65", যেহেতু STDIN থেকে ইনপুট সর্বদা একটি স্ট্রিং থাকবে।
ডেনিস

1
@ ডেনিস ওহ ধন্যবাদ যে এখন কাজ করে!
বিটা ক্ষয়

2

লুয়া - 43 41 বাইট

for i=1,arg[1]do print(string.char(i))end

আপনি এটি বাইট দ্বারা সংক্ষিপ্ত করতে পারেনa=""for i=1,arg[1]do print(a.char(i))end
ডিজিটাল বীর

আপনি এটি 2 বাইট দ্বারা সংক্ষিপ্ত করতে পারেনfor i=1,arg[1]do print(("").char(i))end
মানটওয়ার্ক

2

বেফঞ্জ 98, 22

&:00pv>0gk,@
0::-1<^j`

এতো দীর্ঘ যে দুঃখের বিষয়।

&:00p        ; gets numerical input, stores a copy at cell (0,0)               ;
     v       ; IP goes down                                                    ;

     <       ; IP goes left, so I execute 1-::0`j^                             ;
 ::-1        ; (1-::) subtract one from our number and duplicate it twice      ;
0       `    ; (0`) compare the number with 0, push 1 if greater else 0        ;
     <^j     ; if the result was 0, go up, otherwise continue going left       ;

      >0gk,  ; get the value at cell (0,0), print that many numbers from stack ;
           @ ; terminate program                                               ;

2

পাইথন 3.4 - 36 বাইট / 43 বাইট

print(*map(chr,range(int(input()))))
print(*map(chr,range(int(input()))),sep='')

255 ইনপুট ()

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

  1. পরিসরের উপরের সীমা পান
  2. সারণির একটি ব্যাপ্তি তৈরি করুন।
  3. ক্রিয়াকলাপের পরিসীমাটির মানচিত্র করুন (পূর্বে অবিরত হবে)।
  4. স্প্ল্যাট আর্গুমেন্ট প্রসারণের মাধ্যমে মানচিত্রটি গ্রহণ করুন (সংখ্যা -> অক্ষর -> মুদ্রণ!)

দ্বিতীয়টি মাত্র 7 বাইটের বিনিময়ে প্রতিটি অক্ষরকে পৃথক করে স্থান সরিয়ে দেয়।


আপনি এটি অনেকটা ল্যাম্বডায় পরিণত করতে পারেন, যেমন প্রশ্নটি বলেছে এবং পাইথন 2-তে mapএকটি তালিকা ফিরে এসেছে, যাতে আপনি ঠিক করতে পারেনf=lambda i:map(chr,range(i))
জাস্টিন

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

2

পাস্কাল 87

program _;var c:char;n:byte;begin n:=0;readln(n);for c:=chr(0)to chr(n)do write(c);end.

পাস্কাল 73

program _;var c,n:byte;begin readln(n);for c:=0to n do write(chr(c));end.

Http://www.onlinecompiler.net/pascal থেকে তৈরি এবং জরিমানা


1
ফ্রিপ্যাসাল (এবং যদি আমি সঠিকভাবে মনে রাখি তবে টার্বো পাস্কেলকেও) কেবলমাত্র এর মধ্যে var c,n:byte;begin read(n);for c:=0to n do write(chr(c))end.
60০ টি

বেশ সম্ভবত, আমি কেবল ডেলফি ব্যবহার করেছি। তবে কেউ এটিকে সম্পাদনা করে শিরোনামের বাইরে চলে গেছে।
কে কে কোয়ান

2

x86 এএসএম (লিনাক্স) (আপনি এটি সংকলন না করে অনেকগুলি বাইট)

একটি ফাংশন হিসাবে লেখা, ধরে নেওয়া হয়েছে প্যারামিটারটি এক্স এ পাস করা হয়েছে (আমি পড়ার সিস্কেলের জন্য নম্বরটি ভুলে যাই) এছাড়াও [এসপি] বা বিএক্স সংরক্ষণ করে না।

test ax,ax
jz @Done
mov [sp],ax
@Loop:
mov ax,4
mov bx,1
mov cx,sp
mov dx,1
int 0x80
sub [sp],1  ; Can I do this?  Or do I need to load/sub/store separately?
jnz @Loop
@Done:
ret

2
(আমার সেখানে একটি F00F শোষণ করা উচিত ছিল, এটি যে কোনও উপায়ে এটি চালাবেন এমন নয়)
মার্ক কে

7
আমি এটি চালাতে যাচ্ছি। আমি এখন এটি চালাচ্ছি না।
অ্যারেনাস


2

রুবি, 23

f=->n{puts *?\0..n.chr}

ব্যাখ্যা

  • ইনপুট একটি ল্যাম্বডায় যুক্তি হিসাবে নেওয়া হয়। এটি একটি পূর্ণসংখ্যা আশা করে।
  • "ডিস্ট্রাকচারিং অপারেটর" ( *) #to_aryরেঞ্জের প্রতি অনুরোধ করে প্রতিটি চরিত্রকে তার নিজস্ব লাইনে মুদ্রণ করতে।

2

জুলিয়া: 20 টি অক্ষর (REPL)

এটি প্রশ্নের উদাহরণের খুব কাছাকাছি: কেবলমাত্র অক্ষর তৈরি করে এবং তাদের সাথে যা চায় তাই করার জন্য আরপিএলকে অনুমতি দিন।

f(n)=map(char,[0:n])

জুলিয়া: 33 টি অক্ষর

প্রতিটি অক্ষর একটি পৃথক লাইনে মুদ্রণ করে।

print(map(char,[0:int(ARGS[1])]))

2

এম (এমএমএমএস) - 21

R n F i=1:1:n W $C(i)

প্রসারিত আকারে: READ n FOR i=1:1:n WRITE $CHAR(i)


2

টি-এসকিউএল: 68 63

প্রিন্ট লুপ হিসাবে

DECLARE @i INT=64,@ INT=0A:PRINT CHAR(@)SET @+=1IF @<=@i GOTO A

টি-এসকিউএল: 95 86

প্রশ্ন হিসাবে

DECLARE @ INT=64SELECT TOP(@+1)CHAR(ROW_NUMBER()OVER(ORDER BY 0/0)-1)FROM sys.messages

সম্পাদনা করুন: মুকো দ্বারা নির্দেশিত পরিবর্তন এবং সংশোধনগুলি করেছেন। ধন্যবাদ। @ T-clausen.dk দ্বারা প্রস্তাবিত স্থির ও গল্ফিং


লুপের জন্য, আপনি 5 বা তত অক্ষর সংরক্ষণ করতে পারেন WHILE কে লেবেলযুক্ত করে রূপান্তর করতে GOTO। ক্যোয়ারির জন্য, সম্ভবত msdb.sys.objectsপর্যাপ্ত বস্তুর গ্যারান্টি নির্দিষ্ট করুন । এছাড়াও, এটি CHAR (0) আউটপুট দেয় না। যাইহোক, সান্ত্বনা হিসাবে আপনি পারেন ORDER BY @
মুকো

দ্বিতীয় উত্তরটি অবৈধ। আপনি এটিকে আবার লিখতে পারেন এবং গল্ফ 9 টি অক্ষর লিখেছেন: @ INT = 64SELECT শীর্ষ (@ + 1) চর (ROW_NUMBER (0/07) এর অধীনে -1) FYM sys.messages
t-clausen.dk

@ t-clausen.dk নিশ্চিত না যে আমি কীভাবে এটির মাধ্যমে যেতে পারি। তার জন্য ধন্যবাদ.
মিকিটি

2

ব্রেইনফাক - 140 112 বাইট

,>,>,>-[>+<-----]>---[<+>-]<[<<<->->->-]<[>+<-]<[>>++++++++++<<-]<[>>>>++++++++++[<++++++++++>-]<<<<-]>>>[>.+<-]

এখানে চেষ্টা করুন!

পরিবর্তন করে 28 বাইট সংরক্ষণ করা [<<<->>>->+<]>[<<<->>>->+<]>[<<<->>>-]হয়েছে [<<<->->->-]

এর মানে কি

,>,>,>                                                              Takes three inputs
                                                                    in three separate cells

-[>+<-----]>---[<+>-]<[<<<->->->-]<                                 Takes 48 off of each to
                                                                    convert them to decimal

[>+<-]<[>>++++++++++<<-]<[>>>>++++++++++[<++++++++++>-]<<<<-]>>>    Combines them into a
                                                                    three digit number by
                                                                    multiplying the first
                                                                    by 100, the second by
                                                                    10 and then adding all
                                                                    three

[>.+<-]                                                             Repeatedly prints the
                                                                    value of the adjacent
                                                                    cell and then adds one
                                                                    to it until it reaches
                                                                    the input value.

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