একটি নক্ষত্রের ত্রিভুজ আঁকুন


57

101 প্রোগ্রামিংয়ের জন্য একটি কার্য দ্বারা অনুপ্রাণিত এখানে একটি কাজ যা আশা করা খুব সহজ নয় বা একটি সদৃশ (এই জাতীয় জিনিসগুলির জন্য অনুসন্ধান করা খুব কঠিন)।

ইনপুট:

  • একটি ধনাত্মক পূর্ণসংখ্যা n >= 1

আউটপুট:

  • n নক্ষত্রের রেখাগুলি, যেখানে প্রতিটি নতুন রেখার আগের রেখার চেয়ে আরও একটি নক্ষত্র থাকে এবং প্রথম লাইনে একটি নক্ষত্র দিয়ে শুরু হয়।

সাধারণ নিয়ম:

  • এটি কোড-গল্ফ, তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
  • যেহেতু কোর্সটি সি ++ তে পড়ানো হয়, তাই আমি সি ++ তে সমাধান দেখতে আগ্রহী।

পরীক্ষার কেস (n = 5):

*
**
***
****
*****

6
সদৃশ নয়, একটি ডান ত্রিভুজ জেনারেটের কেবল উপসেট ।
manatwork

2
প্রতিটি লাইনে প্রশিক্ষণের স্থান অনুমোদিত?
লুইস মেন্ডো

2
একটি চলন্ত নতুন লাইন গ্রহণযোগ্য?
10:38

1
একটি শীর্ষস্থানীয় নিউলাইন অনুমোদিত?
রিলে 14

না করার কারণ আমি দেখছি না।
সিকবয়

উত্তর:


41

ভিম, 8 বাইট

o <Esc><C-V>{r*J

রিডহেড বাফারে ইনপুট নেয়, সুতরাং যদি ইনপুট 15 হয়, আপনি উপরের কোডটি টাইপ করতে পারেন। এটি একটি নির্বোধ নিয়ম, তবে মনে হচ্ছে এটি অনুমোদিত । আপনি যদি কোনও রেজিস্টারটিতে ইনপুট পেতে চান তবে "aআপনি কেবল @aসামনেই আটকে থাকবেন (10) আপনি যদি এটি শুরু ফাইলটি থেকে পেয়ে থাকেন তবে আপনি D@"পরিবর্তে (11) অর্থ প্রদান করতে চান ।

অপব্যবহারের উপর নির্ভর করে :set autoindent, যা ভিমগলফ.কম নিয়মে ডিফল্ট এবং ভিম 8-এ ডিফল্ট (এবং প্রত্যেকে এটি যেভাবেই ব্যবহার করে)।

  • o <Esc>: এটির সংখ্যার যুক্তি সহ, যদি আপনার পাঠ্যটি শ্বেত স্পেস দিয়ে শুরু হয়, এবং আপনার কাছে :set autoindent, ভিম আটকায় এবং ইন্ডেন্টের একটি ক্যাসকেড তৈরি করে।
  • <C-V>{r*: এই সমস্ত স্থানকে *এস-তে পরিণত করুন। আমি ব্লক ভিজ্যুয়ালটি ব্যবহার করছি যাতে আপনার লাসি ইনডেন্ট সেটিংস যদি নিঃশব্দে আপনার স্পেসগুলি ট্যাবগুলিতে গোষ্ঠীভুক্ত করে, আপনি এখনও সঠিক সংখ্যা পাবেন *
  • J: oদুর্ভাগ্যক্রমে শুরু করে শীর্ষে একটি ফাঁকা রেখা ছেড়েছে। এটি এটি সরিয়ে দেয়।

1
এই উত্তরটি অত্যন্ত চিত্তাকর্ষক। আমি দেখেছি একটি দুর্দান্ত ভিম উত্তর।
ডিজেএমসিএমহেম

1
দেখতে অনেকটা মাছের মতো। বা একটি রকেট।
স্টিফান বিজজিটার

1
আমি -u NONEনিজেই এটি দেখতে কিছুটা পলক দিয়ে ভিমকে বরখাস্ত করেছি ... এটি কোনও কাজ করে না, এটি ডিফল্ট ভিমার্কে আছে বলে মনে autoindentহয় , নিজেই ভিম 8 নয় তাই আমাকে নিজেই এটি চালু করতে হয়েছিল। তবে, এই উত্তরের চৌকসতার জন্য টুপি! তবে নতুন লাইনে কেন কেবল একটি জায়গা আছে? কেন এটি কেবল ফাঁকা জায়গাগুলির সাথে কাজ করে তবে অন্যান্য চরিত্রগুলির সাথে নয়? মনে হয় এখনও শিখার মতো আমার অনেক কিছুই আছে :)
খ্রিস্টান রোনডাউ

দিয়ে শুরু করার শেষে O <Esc>প্রয়োজন হবে না J
primo

1
@udioica একটি একক পেছনের নতুন লাইন সাধারণত গ্রহণযোগ্য বলে মনে করা হয়।
প্রিমো

23

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

এটির মধ্যে একটি শীর্ষস্থানীয় এবং একটি চলন্ত লাইন বিরতি উভয়ই অন্তর্ভুক্ত রয়েছে।

আমরা একটি স্ট্রিং দিয়ে শুরু করি যেখানে sকেবল একটি লাইন-ব্রেক রয়েছে। তারপরে আমরা nপ্রতিটি পুনরাবৃত্তিতে এই স্ট্রিংয়ের বাম দিকে একটি নক্ষত্র যুক্ত করে পুনরাবৃত্ত কলগুলি প্রক্রিয়া করি । সমস্ত মধ্যবর্তী স্ট্রিংগুলির সংমিশ্রণ প্রত্যাশিত ফলাফলের দিকে নিয়ে যায়।

f=(n,s=`
`)=>n?s+f(n-1,'*'+s):s

তারকাচিহ্ন ছাড়াই, 36 বাইট

f=(n,s=`
`)=>n?s+f(n-1,atob`Kg`+s):s

এটা কিভাবে কাজ করে ?
অ্যালেক্সিস_এ

1
@ অ্যালেক্সিস_এ - আমি একটি সংক্ষিপ্ত বিবরণ যুক্ত করেছি।
আরনাউল্ড

3
চমৎকার পুনরাবৃত্ত উত্তর; আপনি যে কৌশলটি ব্যবহার করেন তা আমি কখনই ভাবিনি s। আপনি এটি দিয়ে কিছুটা কম ক্রিপ্টিক তৈরি করতে পারেন n?s+f(n-1,'*'+s):s
ইটিএইচ প্রডাকশনগুলি

19

05 এ বি 1 ই , 7 6 বাইট

ব্যবহার সিপি-1252 এনকোডিং।

'*×.p»

8 বাইট নো-এস্টারিক সংস্করণ:

žQTè×.p»

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

ব্যাখ্যা

ইনপুট ব্যবহার করে উদাহরণ n = 5

'*      # push "*"
        # STACK: "*"
  ×     # repeat input number times
        # STACK: "*****"
   .p   # get prefixes of string
        # STACK: ['*', '**', '***', '****', '*****']
     »  # join by newlines
        # implicit print

@ দ্য বিটবাইট 10žQSè×.p»হ'ল উত্তরের জন্য আপনি যা চেয়েছিলেন তা পেতে এই উত্তরটির যৌক্তিক বর্ধন এবং এটি কেবলমাত্র 10 বাইট। কেউ যদি 10 বাইট হা হা না করে তবে এমিগানাকে অনুগ্রহ দিন।
ম্যাজিক অক্টোপাস উরন

1
@ কারাসোকম্পুটিং: TžQè×.p»8 বাইট সমান ।
এমিগানা

তবুও ভাষা শেখার চেষ্টা করছি, টি নির্দেশটি মিস করলেন; ভেবেছিলাম এটি বেআইনী ছিল যে বেস টোন এক ধরণের ছিল কিন্তু বেস 10 নেই I ভাষা হহে কিছু করতে সক্ষম হবার জন্য আমাকে এখনও তথ্য.টেক্সট এর সম্পূর্ণ বিষয়বস্তুগুলিকে ঘষতে হবে।
ম্যাজিক অক্টোপাস উরন

@ কারসোকম্পুট করা কিছু কমান্ড খুব সহজেই মিস করা সহজ, বিশেষত যদি আপনি এটি করার অন্য কোনও উপায় জানেন :)
এমিগানা

1
@ কারাসোকম্পুটিং: আপনি কী উল্লেখ করছেন তা নিশ্চিত নয়। আমি এখানে কেবলমাত্র লিখিত কমান্ডটি ব্যবহার করছি »এবং এটি হ'ল একটি কমান্ড বিশেষ করে ডেলিফিটরগুলির সাথে একটি স্ট্রিংয়ের সাথে তালিকা মার্জ করার জন্য (এবং Sএটি নষ্ট করে দেবে)। তবে প্রচুর 05AB1E কমান্ড ভেক্টরাইজ করে, হ্যাঁ।
এমিগানা

15

পাওয়ারশেল, 21 বাইট

1..$args[0]|%{'*'*$_}

1ইনপুট থেকে লুপস $args[0], প্রতিটি পুনরাবৃত্তি স্ট্রিং গুণকে ব্যবহার করে যে অনেকগুলি $_অ্যাসিস্টিকের স্ট্রিং তৈরি করে । অন্তর্নিহিতদের জন্য ডিফল্ট আচরণ Write-Outputশেষে বিভাজকের জন্য একটি নতুন লাইন সহ, সুতরাং আমরা এটি নিখরচায় পাই।

PS C:\Tools\Scripts\golfing> .\draw-asterisk-pattern.ps1 5
*
**
***
****
*****

PS C:\Tools\Scripts\golfing> .\draw-asterisk-pattern.ps1 2
*
**

PS C:\Tools\Scripts\golfing> .\draw-asterisk-pattern.ps1 7
*
**
***
****
*****
******
*******

13

পাইথন 2, 37 34 বাইট

i=1;exec"print'*'*i;i+=1;"*input()

Ideone

iআরম্ভ করা হয় 1;
তারপরে execনিম্নলিখিত স্ট্রিং কোডটি কার্যকর করতে আদেশ দেয়, সুতরাং এটি অবশ্যই নির্মিত হবে;
স্ট্রিংটি "print'*'*i;i+=1;"কিন্তু *নিম্নলিখিত স্ট্রিংটি প্রাধান্য নেয় execএবং প্রথমে স্ট্রিংয়ের input()সময় পুনরাবৃত্তি করার নির্দেশ দেয় ; কমান্ড এখন দীর্ঘ স্ট্রিংটি একটি লুপ মত কাজ করে, executes দৈর্ঘ্য বৃদ্ধি আরেকটি স্ট্রিং ing, আবার ব্যবহার চরিত্র পুনরাবৃত্তি , তারপর বৃদ্ধিশীল সঙ্গে ।
execprint*'*'ii+=1

পাইথন 3, 41 বাইট:
def f(n):i=1;exec("print('*'*i);i+=1;"*n) ; অথবা
lambda n,i=1:exec("print('*'*i);i+=1;"*n)


13

জেলি , 6 5 বাইট

”*ẋþY

TryItOnline

কিভাবে?

”*ẋþY - Main link: n
”*    - literal string "*"
   þ  - form outer product with the dyadic function:
  ẋ   -     repeat list (right input is an implicit range(n), Jelly defaults to 1-based)
            so the outer product is like:
            [[i*'*' for i in range(1,len("*")+1)] for x in range(1,n+1)]
    Y - join with line feeds
      - implicit print

অনুগ্রহ:
আমি, নিশ্চিত করুন কোন ordinals দফা হয় নই যেহেতু একটি অক্ষর হয় একটি পূরণবাচক একটি অনুসন্ধান।
সরাসরি লুকআপ শুধু হবে 42Ọẋþ³Yজন্য 7 বাইট যেখানে - ³আমাদের ইনপুট পায়)
একটি সংক্ষিপ্ত সামান্য পরোক্ষ পদ্ধতি জন্য, হবে 8 বাইট , “)’Ọẋþ³Y- যেখানে আমরা অনুসন্ধান ')'জেলি এর কোড পৃষ্ঠা, যা মধ্যে 1-ইন্ডেক্স তাই “)’উৎপাদ 42।


আপনি যখন ইনপুটটিতে শীর্ষস্থানীয় 0 ব্যবহার করেন তখন আকর্ষণীয় কিছু ঘটে। ইনপুট হিসাবে "0414141" চেষ্টা করুন। আমি গল্ফ ভাষাতে নিখুঁত তাই কোথা থেকে এটি ব্যাখ্যা করার চেষ্টা শুরু করব তা আমি জানি না।
লুক

আমি মনে করি এটি একটি স্ট্রিং হিসাবে মূল্যায়ন করা হয়েছে এবং তাই এটি জুড়ে পুনরায় পুনরুক্তি হয় কারণ স্ট্রিংটি একটি পুনরাবৃত্তিযোগ্য এবং তারপরে প্রতিটি অক্ষর একটি পূর্ণসংখ্যার সাথে মূল্যায়ন করে যেহেতু তারা সমস্ত অঙ্ক হয় (উদাহরণস্বরূপ "হাই" দিয়ে এটি ত্রুটি করবে)
জোনাথন অ্যালান

11

সি #, 42 বাইট

f=n=>n<1?"":f(n-1)+"\n"+new string('*',n);

পরীক্ষার কেস সহ সম্পূর্ণ প্রোগ্রাম:

using System;

namespace DrawAnAsteriskPattern
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<int,string>f= null;
            f=n=>n<1?"":f(n-1)+"\n"+new string('*',n);

            Console.WriteLine(f(5));
        }
    }
}

আপনার এটি দরকার কারণ এটি একটি পুনরাবৃত্ত ফাংশন।
এড্রিয়ান্প

ঠিক আছে। এটি
দেখেনি


9

জিএনইউ সেড , 25 24 20 + 1 (n পতাকা) = 21 বাইট

সম্পাদনা: রিলির মন্তব্যের ভিত্তিতে 4 বাইট কম

x;G;:;P;s:\n.:*\n:;t

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

চালান উদাহরণ: ইনপুট, ইউনারী ফর্ম্যাটে আছে যা sed এই উপর ভিত্তি করে অনুমতি দেওয়া হয় জন্য ঐক্যমত্য

me@LCARS:/PPCG$ sed -nf draw_triangle.sed <<< "0000"

*
**
***
****

একটি শীর্ষস্থানীয় নিউলাইন আউটপুটে উপস্থিত, তবে এটি ওপি দ্বারা অনুমোদিত।

ব্যাখ্যা:

x;G             # prepend a newline to unary string
:               # start loop
   P            # print first line only
   s:\n.:*\n:   # shift one unary char from 2nd line to 1st, converted to a '*'
t               # repeat

যদি আপনি Pপ্রতিস্থাপনের আগে ছাঁটাই করেন এবং একটি শীর্ষস্থানীয় নতুন লাইন অনুমতি দেওয়া হয় আপনার প্রয়োজন হবে না /0$/। যদি কোনও নতুন লাইন অনুমোদিত না হয় তবে আপনি এখনও একটি বাইট সংরক্ষণ করতে পারেন x;G;:;/*/P;s:\n.:*\n:;t। আমি একটি শীর্ষস্থানীয় নিউলাইন সম্পর্কে জিজ্ঞাসা করেছি, কিন্তু এখনও শুনিনি।
রিলে 14

8

মতলব, 26 23 বাইট

ভালো বুড়ো মতলব ...

@(n)tril(repmat('*',n))

পেছনের সাদা স্থান রয়েছে। trilআপনাকে নিম্ন ত্রিভুজাকার ম্যাট্রিক্স দেয়।

সম্পাদনা করুন: লুই মেন্ডোকে ধন্যবাদ জানাতে 2 বাইচ সংরক্ষণ করা হয়েছে


আপনি ঠিক বলেছেন - ধন্যবাদ - এখনও খুব বেশি প্রতিযোগিতামূলক নয়: পি
ম্যাথিউজ

8

সি ++ - 92 96 বাইট

#include<string>
int main(){int n;std::string s;scanf("%d",&n);for(;n--;)puts((s+="*").data());}

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

Ungolfed:

//this one hurts, but c++ strings are mutable
#include<string> 
int main(){
    int n;
    //this one hurts as well
    std::string s; 
    //read input to n
    //longer than 'std::cin>>n', but no #include<iostream> needed
    scanf("%d",&n); 
    // same as 'while(n--)', also characterwise, but way cooler
    for(;n--;) 
        //add a '*' the string
        //data() does the same as c_str()
        //puts automatically adds an '\n'
        puts((s+="*").data()); 
}

+4 বাইটের জন্য 'মেইন মেইন () {}' হওয়া উচিত।

সত্য, অভিশাপ - জিসিসি / আইডিয়োনের তাই মানহীন আচরণ
আনেদার

7

জেলিফিশ , 12 11 9 বাইট

\P$'*
  i

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

ব্যাখ্যা

উপরের প্রোগ্রামটি নিম্নলিখিত ক্রিয়ামূলক সিউডোকোডের সমতুল্য:

\            P      $       i        '*
map_prefixes(print, reshape(input(), '*'))

$(পুনর্নির্মাণ) একটি স্ট্রিং তৈরি করে Nআস্টেরিক্স। \Pএকটি ফাংশন তৈরি করে যা একটি তালিকা (বা স্ট্রিং) নেয় এবং এর প্রতিটি উপসর্গ P(মুদ্রণ) এ প্রেরণ করে । অত: পর, এই ধারাবাহিকভাবে স্ট্রিং ছাপে 1করার Nআস্টেরিক্স।


7

আর, 45 বাইট

লুপ পদ্ধতির জন্য:

for(i in 1:scan())cat(rep("*",i),"\n",sep="")

6

ব্র্যাচল্যাগ , 12 বাইট

yke:"*"rj@w\

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

এটি ধরে নিয়েছে যে একটি পিছনের নতুন লাইন গ্রহণযোগ্য

ব্যাখ্যা

yk                The range [0, …, Input - 1]
  e               Take one element I of that range
   :"*"rj         Juxtapose "*" I times to itself
         @w       Write that string followed by a new line
           \      False: backtrack to another element of the range

কোনও নতুন লাইন নেই, 15 বাইট

-:"*"rj:@[f~@nw

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

এটি একটির সমস্ত উপসর্গ গ্রহণ করে কাজ করে "*" × Input


6

হাস্কেল, 35 38 বাইট

নিমিকে ধন্যবাদ বোঝার জন্য তালিকাটি দাও:

f x=unlines[[1..n]>>"*"|n<-[1..x]]

পুরাতন রুপ:

f 0=""
f n=f(n-1)++([1..n]>>"*")++"\n"

বিকল্প সংস্করণ:

g n=([1..n]>>"*")++"\n"
f n=[1..n]>>=g

আপনি বাইট সংরক্ষণ করার ([1..n]>>"*")পরিবর্তে ব্যবহার করতে পারেন replicate n'*'। আমিও কেবল 39 বাইট গণনা করি।
লাইকনি

চমৎকার বিকল্প সংস্করণ! তবে আমি মনে করি বাইট গণনা এখনও এক দ্বারা এবং 38. হওয়া উচিত (যেমন দেখুন এখানে ) সমস্যা সম্পর্কে newline হতে পারে পরে f 0=""যা এক বাইট হিসাবে গণনা করা হয়, কিন্তু কিছু টেক্সট সম্পাদক দুটি বাইট / অক্ষর হিসাবে দেখানো হয়েছে।
লাইকনি

ধন্যবাদ! আমি এখন দেখতে পাচ্ছি যে আমি যখন অক্ষরগুলি গণনা করছিলাম তখন প্রাথমিকভাবে আমি একটি পিছনে নতুন লাইন যুক্ত করেছিলাম। আবারও সেই ভুল করতে পারবে না!
ক্রেগ রায়

2
আপনি একটি তালিকা ধী সুইচ করতে পারেন: f x=unlines[[1..n]>>"*"|n<-[1..x]]
নিমি

6

পাইথ, 7 বাইট

VQ*\*hN

@ETH প্রোডাকশনগুলির জন্য একটি বাইটকে ছুঁড়ে ফেলেছে অনলাইনে চেষ্টা করে দেখুন

@ PIetu1998 এর প্রযুক্তি ব্যবহার করে

6, বাইট

j*L*\*S

চমৎকার উত্তর! আপনি প্রতিস্থাপন করতে পারেন "*"সঙ্গে \*
ইটিএইচ প্রডাকশন

@ এথ প্রডাকশনগুলি আমি সে সম্পর্কে কখনই জানতাম না, ধন্যবাদ!
ডিজাইনিসিমাস - স্প্যামি

আপনি একটি মানচিত্রের সাহায্যে অন্য একটি বাইট সরিয়ে ফেলতে পারেন। j*L\*S(ইনক্লু আইভ Sরেঞ্জ, প্রতিটি *L"*" দ্বারা গুন করুন \*, jনিউলাইন দ্বারা অইন) পাইথটি শেষে একটি অন্তর্নিহিত প্রশ্ন সন্নিবেশ করে।
পুরক্কা কুডারী

jm*\*hএছাড়াও 6 বাইট হয়।
hakr14

6

2sable , 24 11 বাইট

>G')Ç>çJN×,

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

আর কোনও নক্ষত্রের চিহ্ন নেই! 24 থেকে 11 পর্যন্ত গলিত @ এমিগানাকে ধন্যবাদ ।

ব্যাখ্যা:

>G')Ç>çJN×,
>            Push input+1
 G           For N in range (1,input+1)
  ')Ç>çJ     Push '*' by getting ascii code for ')' and adding 1
        Nx,  Print '*' repeated N times

1
কয়েকটি টিপস। õVYIআপনার কোডকে কোনওভাবে প্রভাবিত করে না এবং মুছে ফেলা যায়। 1+হিসাবে একই >। আপনি যদি লুপটিতে তারকাচিহ্ন তৈরি করেন তবে আপনি এটিও সরাতে পারেন UX×অভ্যন্তরীণ লুপের পরিবর্তে ব্যবহার করা আরও বাইট সংরক্ষণ করে। পদ্ধতি পরিবর্তন না করে আপনি এটিকে 11 বাইট বা তারও কম নামিয়ে আনতে পারেন।
এমিগানা

1
নিস! আমি শীঘ্রই সম্পাদনা করব
জেনো র্যাকলিন আশের

আপনি একটি ব্যাখ্যা যোগ করতে পারেন?
বাফার ওভার পড়ুন

বিস্ময়কর কোড, অনুগ্রহ পাওয়ার জন্য অভিনন্দন! সম্প্রদায়ের বট মনে হয় কেবল 25 টি প্রদান করেছে এবং মূল 50 টি আমি মনে করি না কারণ আমি সময়সীমার আগে এই অনুদানটি দিতে ভুলে গিয়েছিলাম, এর জন্য দুঃখিত।
বাফার ওভার

1
এটি সম্পর্কে চিন্তা করবেন না। 100-rep চিহ্ন পৌঁছে খুশি। @ দ্য বিটবাইট
জেনো রাকলিন আশের

6

ব্রেন-ফ্ল্যাক 75 বাইট

জন্য +3 অন্তর্ভুক্ত -A

{(({})[()]<{({}[()]<(((((()()()){}()){})){}{})>)}{}((()()()()()){})>)}{}

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


ব্যাখ্যা:

{(({})[()]<                                                        >)}
#reduce the top element by one until it is 0 after doing the following
#Push this element back on to act as a counter for the next step.
#(counts down from input to 0 we'll call this counter)

           {({}[()]<                          >)}
           #reduce the top element by one until it is 0 after doing the following
           #(counts down from counter to 0)

                    (((((()()()){}()){})){}{})  
                    #push 42 (the ASCII code for *)

                                                 {}
                                                 #pop the counter used to push
                                                 #the right number of *s

                                                   ((()()()()()){})
                                                   #push a 10 (newline)

                                                                      {}
                                                                      #pop the null byte

এই আউটপুট একটি নাল বাইট অন্তর্ভুক্ত? আমি এটি অনুমোদিত বলে মনে করি না ...
ধ্বংসাত্মক লেবু

নাহ, আমি একটি নাল বাইট বলতে চাই
ধ্বংসাত্মক লেবু

@ আবিষ্কারযোগ্য জলছবি হ্যাঁ, আমি অনুমান করি এটি হয়েছে। সহজ ফিক্স যদিও। ধন্যবাদ।
রিলে

6

ডায়ালগ এপিএল , 8 বাইট

'*'⍴⍨¨⍳

সমন্বিত তালিকাটি মেট্রিফাই করুন

'*' স্ট্রিং "*"

⍴⍨ দ্বারা পুনরায় আকার দেওয়া

¨ প্রতিটি

আর্গুমেন্টের মাধ্যমে পূর্ণসংখ্যা 1

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


আমার কাছে 8 বাইট লাগছে।
এরিক দ্য আউটগলফার

1
যদি একক বাইট হতে পারে:(,⍕⊢)⌸⍳
ngn

@ জিএনএন এটি খুব চালাক! এটি নিজের হিসাবে পোস্ট করুন। আপনি সম্ভবত এটি লিখেছেন এটি একটি একক বাইট হিসাবে গণনা করতে পারেন 7 bytes<sup>SBCS</sup>
অ্যাডম

5

ওহ, হ্যাঁ Àé hòlÄ,!
জোনাথন অ্যালান

2
@ জোনাথান অ্যালান আরে, কমপক্ষে এটি জেলির চেয়ে বেশি পঠনযোগ্য। (আমার কাছে);)
ডিজেএমসিএমহেম

জেলির কোড পৃষ্ঠাটি, আমি মনে করি বেশ সুসংহত। লিন সম্প্রতি তৈরি উইকির পরমাণু পৃষ্ঠার ওভারহালটি দেখুন ।
জোনাথন অ্যালান

3
@ জোনাথন অ্যালান হ্যাঁ, আমি এটি বিশ্বাস করব। এটি দেখতে এটির মতো নাও লাগতে পারে, তবে ভি-র স্মৃতিবিজ্ঞানগুলি আপনি কীগুলি ভিমে টাইপ করার জন্য ব্যবহার করেন তার কারণে এটি সুসংহত। সুতরাং ভিএম-কী লিঙ্গোতে আমার সমাধানটি হ'ল <M-@><M-i>*h<M-r>l<M-D>x(মিটা মেটা, যার অর্থ Alt)। এই সমস্ত কমান্ডটি কি করে তার জন্য বেশ ভাল স্মৃতিবিদ্যার।
ডিজেএমসিএমহেম

5

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

f=x=>x?f(x-1)+`
`+'*'.repeat(x):''

5

পার্ল 6 , 23 বাইট

{.put for [\~] '*'xx$_}

(যদি আউটপুটটিকে নতুন লাইনগুলি ছাড়াই "লাইনগুলির" তালিকা হতে দেওয়া হয় তবে .put for তা সরানো যেতে পারে)

ব্যাখ্যা:

# bare block lambda with implicit parameter 「$_」
{
  .put            # print with trailing newline
    for           # for every one of the following
      [\~]        # produce using concatenation operator
        '*' xx $_ # list repeat '*' by the input
}

(আপনি produceকী [\~] ...করছেন তা বুঝতে না পারলে ডকুমেন্টেশন দেখুন )


5

পার্ল 5, 22 20 বাইট

say"*"x$_ for 1..pop

-Eপেতে সুইচ দিয়ে এটি চালান say

$ perl -E 'say"*"x$_ for 1..pop' 5
*
**
***
****
*****

সম্পূর্ণ প্রোগ্রাম হিসাবে লিখিতভাবে এটি দেখতে এই রকম হবে:

use strict;
use feature 'say';

# get the argument
my $limit = pop @ARGV;

foreach my $i (1 .. $limit) { 
    say "*" x $i; 
}

কমান্ড লাইন সুইচের জন্য আমার অতিরিক্ত বাইটের প্রয়োজন কিনা তা নিশ্চিত নন।
simbabque

আমি বিশ্বাস করি -Eপতাকাটি 1 টি অতিরিক্ত বাইট হিসাবে গণনা করা হয়েছে।
ইটিএইচ প্রডাকশনগুলি

প্যারামিটারের পরিবর্তে নম্বরটি ইনপুট হিসাবে নেওয়া সম্পর্কে কী? perl -E 'say"*"x$_ for 1..<>' <<< 5
manatwork

@ মানটওয়ার্ক হ্যাঁ এটি কার্যকর হবে। আমি যদিও গণনায় ভাল না। নিশ্চিত যে এটি অনুমোদিত কিনা।
simbabque

1
-Eবিনামূল্যে (যেমন এটি প্রতিস্থাপন -eযা যাইহোক প্রয়োজন হবে)। আপনি যদি সত্যিই কমান্ড লাইন থেকে নম্বরটি নিতে চান (কেন নয়, এমনকি যদি <>1 বাইট ছোট, এবং অনুমোদিত) তবে আপনার (2 বাইট সংক্ষিপ্ত) এর popপরিবর্তে ব্যবহার করা উচিত shift! যাই হোক, পিপিসিজিতে আপনাকে স্বাগতম, আপনাকে গল্ফ করে দেখে খুশি!
দাদা

5

পার্ল, 19 বাইট

-4 বাইটস @ টন হসপেল এবং তার সমাধানটির পুনরায় কাজ করার জন্য ধন্যবাদ !

eval"s//*/;say;"x<>

চালানোর জন্য নিখরচায় -E(বা -M5.010) পতাকা লাগবে। ইনপুট থেকে একটি সংখ্যা নেয়:

perl -E 'eval"s//*/;say;"x<>' <<< "5"

1
আপনি করতে পারেন evalহিসাবে একই দৈর্ঘ্য forসমাধান (ব্যবহার <>পরিবর্তে popসহ)eval"s//*/;say;"x<>
টন Hospel

@ টনহোপেল ইনিয়েড, দুর্দান্ত! ধন্যবাদ!
দাদা

5

জে, 11 8 বাইট

মাইল 3 বাইট সংরক্ষণ করা হয়েছে!

]\@#&'*'

এখানে একটি পচে যাওয়া:

(]\@#&'*') x
x (]\@#) '*'
]\ (x # '*')

এখন, এই শেষটি " কপিগুলির ]\সমন্বিত স্ট্রিংয়ের উপসর্গ ( ) হিসাবে পড়ে ।" পালন:x'*'

   5 ]\@# '*'
*
**
***
****
*****
   ]\ 5# '*'
*
**
***
****
*****
   ]\ 5 # '*'
*
**
***
****
*****
   ]\@#&'*' 5
*
**
***
****
*****

পরীক্ষা ক্ষেত্রে

   f =: ]\@#&'*'
   f 3
*
**
***
   f 5
*
**
***
****
*****
   f 1
*
   f 2
*
**
   f &. > ;/1+i.10
+-+--+---+----+-----+------+-------+--------+---------+----------+
|*|* |*  |*   |*    |*     |*      |*       |*        |*         |
| |**|** |**  |**   |**    |**     |**      |**       |**        |
| |  |***|*** |***  |***   |***    |***     |***      |***       |
| |  |   |****|**** |****  |****   |****    |****     |****      |
| |  |   |    |*****|***** |*****  |*****   |*****    |*****     |
| |  |   |    |     |******|****** |******  |******   |******    |
| |  |   |    |     |      |*******|******* |*******  |*******   |
| |  |   |    |     |      |       |********|******** |********  |
| |  |   |    |     |      |       |        |*********|********* |
| |  |   |    |     |      |       |        |         |**********|
+-+--+---+----+-----+------+-------+--------+---------+----------+

পুরানো, 11-বাইট সমাধান

'*'#~"+1+i.

এটি সমতুল্য

'*' #~"0 1 + i.

1 + i.পরিসীমা হয় [1, x]। তারপরে, এর '*' #~"0এই ব্যাপ্তি আকারের (উপাদান) কপিগুলিতে প্রয়োগ করা হবে '*'

বোনাস প্রোগ্রাম:

[:#&'*'\#&1

এটি ইনপুট #&'*'\ফলাফলের জন্য প্রয়োগ করা একটি ক্যাপযুক্ত কাঁটাচামচ #&1। এই অ্যারের উপসর্গগুলিতে #&1একটি অ্যারে xএবং #&'*'\আকার '*'দেয়।

পরীক্ষার মামলা

   f1 =: '*'#~"+1+i.
   f2 =: [:#&'*'\#&1
   f1 1
*
   f2 2
*
**
   f1 3
*
**
***
   f2 4
*
**
***
****
   f2 5
*
**
***
****
*****
   f1 5
*
**
***
****
*****
   (f1;f2)3
+---+---+
|*  |*  |
|** |** |
|***|***|
+---+---+
   f1;f2
f1 ; f2
   (f1;f2)5
+-----+-----+
|*    |*    |
|**   |**   |
|***  |***  |
|**** |**** |
|*****|*****|
+-----+-----+
   (f1;f2)10
+----------+----------+
|*         |*         |
|**        |**        |
|***       |***       |
|****      |****      |
|*****     |*****     |
|******    |******    |
|*******   |*******   |
|********  |********  |
|********* |********* |
|**********|**********|
+----------+----------+

আপনি 8 বাইট ব্যবহার করে nকপির ম্যাপের স্ট্রিংয়ের উপসর্গও পেতে পারেন'*']\@#&'*'
মাইল

@ মাইলস: এবং আরও একটি 9 বাইট সংস্করণ:'*'"0\@i.
জোনা

5

ভিম, 22 , 18 কীস্ট্রোক

O <esc>J:h r<cr>lyEZZ<C-v>{@"

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

ব্যাখ্যা:

বাকি প্রোগ্রামের আগে ইনপুট টাইপ করা হয়। উদিয়িকা এই দুর্দান্ত কৌশলটি নিয়ে এসেছিল। টাইপিং <n>O <esc>স্পেসগুলির একটি পিরামিড এবং একটি খালি লাইন তৈরি করবে যতক্ষণ আপনি :set autoindentসক্ষম করেছেন। এই বিকল্পটি ভিএম 8 এবং নিউওভিমে ডিফল্টরূপে আসে যদিও ভিমের পুরানো সংস্করণ নয়। যেহেতু এটি একটি অতিরিক্ত লাইনও তৈরি করে, তাই আমরা Jপরবর্তী লাইনের সাথে এই লাইনে যোগ দিতে ব্যবহার করি যা কার্যকরভাবে আমাদের নীচের লাইনটি সরিয়ে দেয়।

এখন এই মুহুর্তে, আমাদের এই সমস্ত জায়গাগুলিকে অ্যাসিস্ট্রিকগুলির সাথে প্রতিস্থাপন করতে হবে। আমি যদি আমার কোডটিতে অ্যাসিরিস্টক ব্যবহার সম্পর্কে উদ্বিগ্ন না হয়ে থাকি তবে আমি কেবল পুরো জিনিসটি <C-v>{টাইপ করব এবং টাইপ করব r*, যা নির্বাচনের প্রতিটি চরিত্রকে একটি নক্ষত্রের সাথে প্রতিস্থাপন করে। তবে আমি তা করতে পারি না।

সুতরাং আমরা সহায়তা পৃষ্ঠাগুলি এতে খুলি :h r। এটির সম্পর্কে আকর্ষণীয় বিষয়টি হ'ল ভিম উইন্ডোতে এই পৃষ্ঠাটি প্রদর্শিত হবে:

                            r
r{char}         Replace the character under the cursor with {char}.
                ...

প্রথম 'আর' তে কার্সার সহ। তবে ফাইলটি নিজেই এই পাঠ্যটি অন্তর্ভুক্ত করে:

                            *r*
r{char}         Replace the character under the cursor with {char}.
                ...

খুব সুবিধাজনক। সুতরাং আমরা সঙ্গে একটি অক্ষর উপর সরানো lএবং পাঠ্য হ্যাঁচকা টান r*দিয়ে yE(কে [ই] য় এই শব্দ [y] এর ANK)।

এই বাফারটি বন্ধ করতে, আমরা একটি ফাইল সংরক্ষণ করতে শর্টকাট ব্যবহার করি ZZ। এখন, আমরা দৃষ্টিভঙ্গিভাবে আমাদের স্পেসগুলি নির্বাচন করি, এবং ইয়ঙ্কযুক্ত পাঠ্যটি চালিত করি যেন আমরা এটি করে টাইপ করেছি @"। এটি কাজ করে কারণ "@" নিম্নলিখিত রেজিস্টারটি ভিআইএম-কীস্ট্রোক হিসাবে চালায় এবং "ইয়ঙ্কিংয়ের জন্য ডিফল্ট রেজিস্টার।


এটি কিভাবে কাজ করে তা বোঝানোর জন্য যত্নশীল?
করভাস_192

@ করভাস_192 আমি আরও বিস্তৃত ব্যাখ্যা যুক্ত করেছি, পাশাপাশি আরও কিছুটা গল্ফ করে।
ডিজেএমসিএমহেম

বাইট কাউন্টে ডেটা ফাইলের আকার যুক্ত করা উচিত নয়?

@ সাহায্য ফাইলের আকার? না, কারণ এই ফাইলটি ভিমের পাশাপাশি ইনস্টল করা আছে এবং এটি একটি ডিফল্ট বৈশিষ্ট্য।
ডিজেএমসিএমহেম

5

সি, 47 46 45 43 বাইট

কমান্ড লাইন থেকে ইনপুট নেয়

f(n){for(n&&f(n-1);~n;putchar(n--?42:10));}

মূলত এন -1-তে যদি 0 এর পুনরাবৃত্তি হয়। পুনরাবৃত্তির শীর্ষে যেখানে n 0 এটি কেবল একটি নতুন লাইন প্রিন্ট করে, লুপের জন্য বন্ধ হয় যখন এন -1 হয় বা zero n শূন্য হয়, অন্যথায় এটি ASCII 42 প্রিন্ট করে যা '*' ' আদর্শে এটি চেষ্টা করুন

আইস্ট্রিমে অন্তর্ভুক্ত করার জন্য সি ++ 58 বাইট + 19 77

#include<iostream>
int f(int n){for(n&&f(n-1);~n;std::cout<<(n--?"*":"\n"));}

main(c,v)char**v;
{
    f(atoi(v[1]));
}

a.exe 3
*
**
***

আমার সাথে মনে হচ্ছে &&: n?f(n-1):0n&&f(n-1)
manatwork

@ মান্যাটওয়ার্ক ধন্যবাদ কুঁড়ি অন্য একটি বাইট সংরক্ষণ করা হচ্ছে
11:58

আদর্শ হিসাবে 2 ত্রিভুজ শোয়ের মুদ্রণের শেষে একটি '\ n' আরও রয়েছে: * ** *** * ** *** **** ***** আমি বলছি কেস 0 এর শেষের দিকে পুনর্বিবেচনা, আরও একটি print n মুদ্রণ করুন
রোজলুপি

@ রসলুপ হ্যাঁ এটি একটি শীর্ষস্থানীয় এবং একটি ট্রেলিং নিউলাইন মুদ্রণ করছে। আমি মনে করি ওপি তার মন্তব্যে ঠিক বলেছেন।
ক্লাবল্যাঙ্ক

4

রেটিনা , 14 বাইট

বাইট গণনাটি আইএসও 8859-1 এনকোডিং ধরেছে।

.+
$**
.
$`$&¶

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

ব্যাখ্যা

.+
$**

ইনপুটটিকে তারকাচিহ্নে Nপরিণত করুন N

.
$`$&¶

প্রতিটি নক্ষত্রটিকে প্রতিস্থাপন করুন এবং সেই তারকাচিহ্ন (এই এটি $`$&) এবং একটি লাইনফিড (এটি এটি ) সহ সমস্ত কিছু দিয়ে প্রতিস্থাপন করুন ।



4

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

?(.;I:^;/-.@o;(!\>'*oN

এটি অনলাইন পরীক্ষা! একটি ট্রেলিং নিউলাইন আউটপুট দেয়।

প্রথমে আমি নিশ্চিত ছিলাম না যে এটি 2-কিউবে ফিট করার জন্য আমি পেয়ে যাব, তবে শেষ পর্যন্ত এটি দুর্দান্তভাবে কাজ করেছিল:

    ? (
    . ;
I : ^ ; / - . @
o ; ( ! \ > ' *
    o N
    . .

আমি সময় পেলে আমি একটি ব্যাখ্যা যুক্ত করব, আশা করি আজকের পরে।


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