ফিবোনাচি + ফিজ বাজ = ফিবো ন্যাকসি!


74

ফিবোনাচি + ফিজবজ = ফিবো ন্যাকসি!


আপনার চ্যালেঞ্জটি একটি ফিবো ন্যাক্সি প্রোগ্রাম তৈরি করা!

  • একটি ফিবো ন্যাকি প্রোগ্রাম প্রথম 100 ফিবোনাচি সংখ্যা (1 থেকে শুরু করে) আউটপুট করে ।
  • যদি ফিবোনাচি সংখ্যাটি 2 এবং 3 উভয় দ্বারা বিভাজ্য হয় (যেমন এটি 6 দ্বারা বিভাজ্য), তবে সংখ্যার পরিবর্তে ফিবোনাচি আউটপুট করুন।
  • অন্যথায়, যদি ফিবোনাচি সংখ্যাটি 2 দ্বারা বিভাজ্য হয়, তবে সংখ্যার পরিবর্তে ফিবো আউটপুট করুন।
  • অন্যথায়, যদি ফিবোনাচি সংখ্যাটি 3 দ্বারা বিভাজ্য হয়, তবে সংখ্যাটির পরিবর্তে ন্যাকিকে আউটপুট করুন।

বিধি

  • প্রোগ্রামটির কোনও ইনপুট নেওয়া উচিত নয়।
  • প্রোগ্রামটি \nপ্রতিটি প্রবেশের পরে একটি নতুন লাইন আউটপুট করা উচিত ।
  • প্রোগ্রামটি এসটিডিআরআর তে কিছু মুদ্রণ করা উচিত নয়
  • প্রোগ্রামটি অবশ্যই প্রথম 100 ফিবো ন্যাক্সি এন্ট্রি আউটপুট করতে হবে (1 থেকে শুরু)।
  • স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয় (ডিফল্টরূপে)।
  • এটি তাই বাইট জেতে সংক্ষিপ্ততম কোড!

এখানে প্রত্যাশিত আউটপুট:

1
1
Fibo
Nacci
5
Fibo
13
Nacci
Fibo
55
89
FiboNacci
233
377
Fibo
Nacci
1597
Fibo
4181
Nacci
Fibo
17711
28657
FiboNacci
75025
121393
Fibo
Nacci
514229
Fibo
1346269
Nacci
Fibo
5702887
9227465
FiboNacci
24157817
39088169
Fibo
Nacci
165580141
Fibo
433494437
Nacci
Fibo
1836311903
2971215073
FiboNacci
7778742049
12586269025
Fibo
Nacci
53316291173
Fibo
139583862445
Nacci
Fibo
591286729879
956722026041
FiboNacci
2504730781961
4052739537881
Fibo
Nacci
17167680177565
Fibo
44945570212853
Nacci
Fibo
190392490709135
308061521170129
FiboNacci
806515533049393
1304969544928657
Fibo
Nacci
5527939700884757
Fibo
14472334024676221
Nacci
Fibo
61305790721611591
99194853094755497
FiboNacci
259695496911122585
420196140727489673
Fibo
Nacci
1779979416004714189
Fibo
4660046610375530309
Nacci
Fibo
19740274219868223167
31940434634990099905
FiboNacci
83621143489848422977
135301852344706746049
Fibo
Nacci

ক্যাটালগ

স্ন্যাক স্ট্যাক স্নিপেট এই পোস্টের নীচে উত্তর ক) ভাষা প্রতি সবচেয়ে কম সমাধান একটি তালিকা হিসাবে এবং খ) একটি সামগ্রিক লিডারবোর্ডে হিসাবে থেকে ক্যাটালগ তৈরি করে।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

## Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

## Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

## Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও তৈরি করতে পারেন যা স্নিপেটে প্রদর্শিত হবে:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


6
মাত্র 64 বিটের সর্বোচ্চ সংখ্যক সংখ্যার ভাষা সম্পর্কে কী বলা যায়? :( 90
ফাইব

3
@ জেরেজেস এই বিষয়ে আমি দুঃখিত :(
ক্রিটিকি লিথোস

28
হতে পারে এটিকে "ফিজো ন্যাকি" বলা উচিত
LegionMammal978

4
@ স্পটুপই যেহেতু এই প্রশ্নের আউটপুট সম্পূর্ণ অপরিচিত, আপনার এমনকি একেবারে পূর্ণসংখ্যারও দরকার নেই। এই প্রশ্নটিকে কেবল কলমোগরভ-জটিলতার প্রশ্ন হিসাবে বিবেচনা করুন (আমি ট্যাগটি যোগও করেছি) এবং সেখান থেকে যান।
ক্রিস জেস্টার-ইয়ং

3
@ ক্রিসজেস্টার-ইয়াং এখনও এটি একটি অপ্রয়োজনীয় সীমাবদ্ধতা, এটি সৃজনশীল বাস্তবায়নকারীদের এই কাজটি পরিষ্কার করে দিতে পারে। এবং বেশিরভাগ সমাধানগুলি (২ য় সর্বোচ্চ আপভোটেড এক সহ) ইতিমধ্যে ভঙ্গ হচ্ছে
সজ্টআপওয়াই

উত্তর:


18

পাইথ, 37 বাইট

আমি ফিবোনাচি সংখ্যাগুলি আগে তৈরি করার পরিবর্তে লুপ করি, কারণ এটি করা খুব কম short

K1V100|+*"Fibo"!%=+Z~KZ2*"Nacci"!%Z3Z

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


এই চ্যালেঞ্জ জয়ের জন্য অভিনন্দন! আমি পছন্দ করি যে এই সমাধানটি দ্রুত ছিল।
ক্রিটসি লিথোস

45

পাইথন 2, 62 বাইট

a=b=1;exec"print~a%2*'Fibo'+~a%3/2*'Nacci'or a;a,b=b,a+b;"*100

স্ট্যান্ডার্ড ফিজবজ থেকে আসলে খুব বেশি আলাদা নয়।


1
এটা চমৎকার.
জে আতকিন

আমার পরবর্তী রুবি গল্ফের জন্য এই লুপিং কনস্ট্রাক্টটি মনে রাখা দরকার। এটা চমৎকার.
হাততালি

21

সি ++ 11 রূপক, 348 বাইট

#include<iostream>
#define D static const unsigned long long v=
template<int L>struct F{D F<L-1>::v+F<L-2>::v;};template<>struct F<2>{D 1;};template<>struct F<1>{D 1;};template<int Z>struct S:S<Z-1>{S(){auto&s=std::cout;auto l=F<Z>::v;s<<(l%2?"":"Fibo")<<(l%3?"":"Nacci");(l%2&&l%3?s<<l:s)<<"\n";}};template<>struct S<0>{S(){}};int main(){S<100>s;}

কারণ, কেন নয়। এটি সংকলন করে warning C4307: '+': integral constant overflow, জরিমানা চালায়, তবে 93+ তম ফিবোনাচি নম্বরগুলি সঠিকভাবে প্রদর্শিত হয়নি (উপচে পড়ার কারণে), সুতরাং এটি অবৈধ প্রবেশ (তবে আমি এটি বাইটের বেশি দিয়ে জিততে পারিনি)

Ungolfed

#include <iostream>
#define D static const unsigned long long v = 
template<int L>struct F { D F<L - 1>::v + F<L - 2>::v; };
template<>struct F<2> { D 1; };
template<>struct F<1> { D 1; };

template<int Z>struct S : S<Z - 1>
{
    S()
    {
        auto&s = std::cout;
        auto l = F<Z>::v;
        s << (l % 2 ? "" : "Fibo")
          << (l % 3 ? "" : "Nacci");
        (l % 2 && l % 3 ? s << l : s) << "\n";
    }
};

template<>struct S<0>
{
    S() { }
};

int main()
{
    S<100>s;
}

আপনি template <char H, char ...T>নিজের টেম্পলেটগুলিতে (তাত্ত্বিকভাবে) স্বেচ্ছাসেবী দৈর্ঘ্যের মানগুলি হ্যান্ডেল করতে বিস্ফোরিত স্ট্রিং ( ) ব্যবহার করতে পারেন । তারপরে কেবল 2 এবং / অথবা 3 দ্বারা বিভাজন নির্ধারণের জন্য প্রতিটি স্ট্রিংয়ের শেষ 2 টি অক্ষর পরীক্ষা করার বিষয় হবে
মেগো

@ মেগো আমি আপনাকে বুঝতে পারি না। এটি কীভাবে আমাকে মানগুলি পরিচালনা করতে সহায়তা করবে, যা b৪ বিটের মধ্যে খাপ খায় না। এছাড়াও, সংখ্যাটি 3 দ্বারা বিভাজ্য কিনা তা জানতে আপনার সমস্ত সংখ্যা প্রয়োজন
জেরেজেস

স্ট্রিংগুলি নির্বিচারে দীর্ঘ হতে পারে (যতক্ষণ না আপনি স্মৃতিশক্তি শেষ হয়ে যান)। এবং আপনি ঠিক বলেছেন, আমি আমার মন্তব্য জগাখিচুড়ি। তবুও, আপনি 3 দ্বারা বিভাজ্যতা নির্ধারণের জন্য ডিজিটাল যোগফল গণনা করতে পারেন
মেগো

@ মেগো এই স্ট্রিংগুলির সংযোজন কার্যকর করার জন্য আরও অনেক প্রচেষ্টা প্রয়োজন হবে।
জেরেজেস

1
আপনি gnu উপভাষা এবং ব্যবহার করতে পারেন __uint128_t, সম্ভবত।

14

সি #, 175 171 152 145 বাইট

class c{static void Main(){for(dynamic a=1m,b=a,c=0;c++<100;b=a+(a=b))System.Console.WriteLine(a%6>0?a%2>0?a%3>0?a:"Nacci":"Fibo":"FiboNacci");}}

uncompressed:

class c {
    static void Main()
    {
        for (dynamic a = 1m, b = a, c = 0; c++ < 100; b = a + (a = b))
            System.Console.WriteLine(a%6>0?a%2>0?a%3>0?a:"Nacci":"Fibo":"FiboNacci");
    }
}

এমনকি একটি ডিফল্ট স্ট্রিমের সাথে আউটপুটটি সংক্ষিপ্ত করেও আমি যে 191 অক্ষর পেতে পারি তার চেয়ে কম কম 191 অক্ষর তাই এটি সম্ভবত সেরা সম্ভাব্য সি # উত্তরটির খুব কাছাকাছি। একটি লজ্জা বিগইন্টিগরের প্রয়োজন।
জোডরেল

"সিস্টেম ব্যবহার করে;" আকারে অন্য -1 দেবে।
ওলেজ

1
ব্যবহারের পরেও আমাকে সিস্টেমের সংখ্যাসূচক ছিল। সংখ্যার সাথে সিস্টেমের সংখ্যা: -এস, সুতরাং আমি নিশ্চিত না যে ব্যবহারটি কার্যকর হবে।
জোডরেল

1
আপনি প্রতিস্থাপন 3 টি অক্ষর সংরক্ষণ করতে পারবেন ==0সঙ্গে গুলি >0এবং ternaries ইনভার্টারিং:class c{static void Main(){for(System.Numerics.BigInteger a=1,b=1,c=0;c++<100;b=a+(a=b))System.Console.WriteLine(a%6>0?a%2>0?a%3>0?a:(object)"Nacci":"Fibo":"FiboNacci");}}
বব

3
আপনি পরিবর্তন করে অন্য 7 টি অক্ষর সংরক্ষণ করতে পারবেন decimal a=1,b=1করার dynamic a=1m,b=aএবং তারপর আপনি হারাতে পারেন (object):)
Timwi

13

ওরাকল এসকিউএল, 212 বাইট

গল্ফ করার ভাষা নয় তবে আমাকে চেষ্টা করতে হয়েছিল ...

এর সাথে সমস্ত সারি সংযুক্ত করা \n:

WITH F(R,P,C)AS(SELECT 1,0,1 FROM DUAL UNION ALL SELECT R+1,C,P+C FROM F WHERE R<100)SELECT LISTAGG(NVL(DECODE(MOD(C,2),0,'Fibo')||DECODE(MOD(C,3),0,'Nacci'),''||C),CHR(13))WITHIN GROUP(ORDER BY R)||CHR(13)FROM F

SQLFIDDLE

বা সারি প্রতি ক্রম (162 বাইট) থেকে একটি এন্ট্রি সহ:

WITH F(R,P,C)AS(SELECT 1,0,1 FROM DUAL UNION ALL SELECT R+1,C,P+C FROM F WHERE R<100)SELECT NVL(DECODE(MOD(C,2),0,'Fibo')||DECODE(MOD(C,3),0,'Nacci'),''||C)FROM F

2
দুর্দান্ত, কেবল এসকিউএল ব্যবহারের জন্য
ওয়েন ওয়ার্নার

কেবল সর্বশেষটি ব্যবহার করুন, যেহেতু এটি "প্রতি লাইনে" আউটপুট দেওয়ার "সমতুল্য"। এবং এটি আসলে কোডের একটি সূক্ষ্ম অংশ piece সাবাশ!
ইসমাইল মিগুয়েল

@ ইসমাইলমিগুয়েল যদি এটি এসকিউএল * প্লাসে চালিত হয় (বা অন্য কোনও কমান্ড লাইন ইন্টারফেস) তবে প্রতিটি সারির পরে একটি নতুন লাইন আউটপুট আসবে (কীভাবে এটি ক্যোয়ারীর আউটপুটটি রিপোর্ট করে তার অংশ হিসাবে)। নিয়ম সঙ্গে সঙ্গতিশীল হতে - যাইহোক, যে CLI একটি ফাংশন এবং এসকিউএল ভাষা The program should output a new line (\n) after every entryআমি যোগ করে (ক CLI উপর নির্ভর না করেই) আর কোড যেমন ছেড়ে দেব কিন্তু ছোট এক অনুবর্তী করা সম্ভব হয়েছে ||CHR(13)ফাইনালের আগে FROM171 ক্র্যাকারের জন্য।
এমটি 0

আপনি ব্যবহার করতে পারবেন না "\n"? মাইএসকিউএল-এ কাজ করার জন্য মনে হচ্ছে। (দৌড়াদৌড়ি select length("\n")১ টি রিটার্ন select "\n"দেয় এবং দৌড়ে ফিরে আসে না n, যেমন একটি অবৈধ পলায়নের কারণে select "\p"ফেরত আসে p)
ইসমাইল মিগুয়েল

SELECT LENGTH('\n') FROM DUALরূপান্তরিত হয় না 2হিসাবে ওরাকল আউটপুট । '\n'CHR(13)
এমটি0

11

শেপস্ক্রিপ্ট , 83 বাইট

11'1?1?+'77*2**!""'"%r
"@+@0?2%1<"Fibo"*1?3%1<"Nacci"*+0?_0>"@"*!#%'52*0?**!"'"$""~

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


15
আক্ষরিক মনে হচ্ছে যখন আমি স্টিকি কীগুলি চালু করার চেষ্টা করছিলাম তখন আমার বিড়ালটি আমার কীবোর্ডের উপরে উঠে গেছে। সুন্দর কাজ.
ফেজ

2
অলৌকিকভাবে @ ফেজ। হয় হয় বা আপনি খুব কাছ থেকে খুঁজছেন না। অথবা আপনার একটি ছোট বিড়াল বা একটি দৈত্য কীবোর্ড আছে। কারণ এই বিড়ালটি Fibo এবং Nacci টাইপ করতে সক্ষম হয়েছিল তবে অন্যথায় সমস্ত অক্ষরের কীগুলি এক টিয়ের জন্য সংরক্ষণ করা এড়াতে পারে।
জন ডিভোরাক

3
@ জানডভোরাক আমার মনে হয় যে পর্যায়ে এর জন্য ম্যাক্রোস সেটআপ রয়েছে;)
ওয়েন ওয়ার্নার

2
@ ফেজ 1. আপনার ঘরে আপনার বিড়াল কেন ?; ২. আপনি কেন স্টিকি কী চালু করতে চান? 3? আপনার কীবোর্ডে আপনার বিড়ালটি জাম্পিং এড়াতে আপনার ডেস্কে কেন একটি বিড়ালের ফাঁদ বক্স নেই?
Nzall

7

জাভা, 407 398 351 308 বাইট

@ জিওবিটস এবং @ সামায়োননৌর সহায়তায় এটিকে গল্ফ করুন

শব্দটি ছড়িয়ে দিন: Verbose == Java

import java.math.*;class A{public static void main(String[]w){BigInteger a=BigInteger.ZERO,b=a.flipBit(0),c,z=a,t=a.flipBit(1),h=t.flipBit(0),s=t.flipBit(2);for(int i=0;i<100;i++){System.out.println(b.mod(s).equals(z)?"FiboNacci":b.mod(t).equals(z)?"Fibo":b.mod(h).equals(z)?"Nacci":b);c=a;a=b;b=c.add(b);}}}

অবরুদ্ধ সংস্করণ:

import java.math.*;

class A
{
  public static void main(String[]w)
  {
    BigInteger a=BigInteger.ZERO,b=a.flipBit(0),c,z=a,t=a.flipBit(1),h=t.flipBit(0),s=t.flipBit‌​(2);
    for(int i=1;i<=100;i++) {
      System.out.println(b.mod(s).equals(z)?"FiboNacci":b.mod(t).equals‌​(z)?"Fibo":b.mod(h).equals(z)?"Nacci":b);                
      c=a;a=b;b=c.add(b);
    }
  }
}

1
এটি আরও গল্ফ করা যেতে পারে। java.math.*পুরো জিনিসটির পরিবর্তে আমদানি করুন। ধ্রুবক জন্য ব্যবহার করুন ONEএবং ZEROপরিবর্তে newBigIntegers। publicক্লাস থেকে মুছে ফেলুন । ছাড়া সবকিছু প্যাক printlnমধ্যে বিবৃতি forইত্যাদি লুপ ঘোষণা ভিতরে শরীর, আমি ধরে খুঁজছি সুপারিশ জাভা golfing টিপস সাধারণভাবে।
জিওবিটস

@ জিওবিটস সম্পন্ন! 'দু'বার দুঃখের বিষয় যা আমি অপরিচিত ছিলাম BigIntegerএবং এর বিভিন্ন গল্ফ কৌশলগুলি।
সোমবার

বিগইন্টেজার.জিরো সংরক্ষণ করে, নতুন বিগইন্টিজার (...) এর বিকল্প হিসাবে ফ্লিপবিট (...) ব্যবহার করে এবং কিছু অন্যান্য ছোটখাটো জিনিস আপনি এটিকে 308 এ নামাতে পারবেন:import java.math.*;class A{public static void main(String[]w){BigInteger a=BigInteger.ZERO,b=a.flipBit(0),c,z=a,t=a.flipBit(1),h=t.flipBit(0),s=t.flipBit(2);for(int i=0;i<100;i++){System.out.println(b.mod(s).equals(z)?"FiboNacci":b.mod(t).equals(z)?"Fibo":b.mod(h).equals(z)?"Nacci":b);c=a;a=b;b=c.add(b);}}}
স্যামইননু

দেখে মনে হয় BigIntegerসর্বদা ফিরে আসে BigInteger.ZEROযখন কিছু ক্রিয়াকলাপ add(...)শূন্যের মূল্যায়নের মতো হয় যার ==পরিবর্তে আপনি ব্যবহার করতে পারেন .equals(z), আপনি স্টোর s=t.flipBit‌​(2)(6) দিয়েও সরিয়ে ফেলতে পারেন এবং এর পরিবর্তে কিছু চতুর অভ্যন্তরীণ কার্যভারও করতে পারেন: import java.math.*;class A{public static void main(String[]w){BigInteger a=BigInteger.ZERO,b=a.flipBit(0),c,d,z=a,t=a.flipBit(1),h=t.flipBit(0);for(int i=0;i<100;i++){System.out.println((c=b.mod(t)).add(d=b.mod(h))==z?"FiboNacci":c==z?"Fibo":d==z?"Nacci":b);c=a;a=b;b=c.add(b);}}}এই পরিবর্তনগুলি এটি 280
সামায়োনউ নভো

2
আমি মনে করি আপনার অর্থVerbose.isEqualTo(Java)
সাইওস

7

গণিত, 80 বাইট

a=b_/;#∣b&;Print/@(Fibonacci@Range@100/.{%@6->FiboNacci,%@2->Fibo,%@3->Nacci})

আমার পুরানো FizzBuzz সমাধানটির অভিযোজন।


1
@ জ্যাকোবএকারবুম দুঃখিত, স্থির এছাড়াও, 10.3 এর কম সংস্করণগুলির Echoসাথে প্রতিস্থাপন করুন Print
LegionMammal978

5

রুবি, 71 66 বাইট

a=b=1;100.times{puts [b,f='Fibo',n='Nacci',f,b,f+n][~b%6];a=b+b=a}

ungolfed:

a = b = 1 #starting values
100.times{
  # create an array, and selects a value depending on the current number
  puts([b, 'Fibo', 'Nacci', 'Fibo', b, 'FiboNacci'][~b%6])
  a=b+b=a # magic
}

আমি এডমিন করতে চাইলে তার চেয়ে বেশি সময় ধরে কাজ করেছি এবং এর উন্নতির কোনও উপায় খুঁজে পাচ্ছি না। f,n=%w[Fibo Nacci], f,n='Fibbo','Nacci'এবং f='Fibbo';n='Nacci'সমস্ত একই অক্ষর গণনা আছে। +1
শেলভাকু

1
আপনি তিনটি বাইট ব্যবহার করে [b,f='Fibo',n='Nacci',f,b,f+n][~b%6]এবং আরও দুটি প্যারেন্টেসিস সরিয়ে সংরক্ষণ করতে পারেন a=b+b=a
primo

ধন্যবাদ @ প্রিয়মো। ~অপারেটরের সাথে এটি একটি ঝরঝরে কৌশল । এর আগে কখনও দেখেনি। এবং এখন আমি জানি কেন নেতিবাচক সূচকগুলি
রুবির

এর puts [পরিবর্তে সত্যিই দরকার puts[?
এরিক আউটগল্ফার

1
গোলাপগুলি লাল, ভায়োলেটগুলি নীল, হাস্কেল এবং রুবির জন্য আমার কোনও ধারণা নেই।
এরিক আউটগল্ফার

5

> <> , 116 বাইট

01:n1&61>.
ao:@+:v
vv?%2:<
">:3%?vv^16<
o>:3%?!v~v<&
bov"ci"< 6 ;
io"   n  6~?
Focv1&<   o=
"o">+:aa*!o^
>^>"aN"ooo^

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


6
সাইটে স্বাগতম! :)
ডিজেএমসিএমহেম

আপনি সম্ভবত উভয় 3%বিভাগকে একত্রিত করতে পারেন
জো কিং

@ জোকিং আপনিও তাই ভাবেন তবে এন% 3! = 0 হলে তারা আসলে বিভিন্ন ফলাফলের দিকে নিয়ে যায়। আমি নিশ্চিত সেখানে আছি হয় সেগুলি একত্রিত করার জন্য একটি উপায়, কিন্তু এটা সম্পূর্ণ প্রোগ্রাম পূনর্গঠনকারী অর্থ হবে, এবং আমি কল্পনা এটা আসলে দীর্ঘতর হতে হবে।
hakr14


4

সি #, 498 392 320 বাইট

আমি লিনাক দিয়ে সত্যিই এটি করতে চেয়েছিলাম, খুব খারাপ আমাকে বিগআইন্টিজারের জন্য নিজের যোগফলটি লিখতে হয়েছিল যা সত্যই এটি হত্যা করেছিল :-(

using System.Linq;using System.Numerics;using System.Collections.Generic;static class a{static void Main(){var f=new List<BigInteger>(){1,1};while(f.Count<100)f.Add(f.Skip(f.Count-2).Take(2).Aggregate((a,b)=>b+a));f.ForEach(x=>{System.Console.WriteLine(x%6==0?"FiboNacci":x%2==0?"Fibo":x%3==0?"Nacci":x.ToString());});}}

Ungolfed:

using System.Linq;
using System.Numerics;
using System.Collections.Generic;
static class a
{
    static void Main()
    {
        var f=new List<BigInteger>(){1,1};
        while(f.Count<100)
            f.Add(f.Skip(f.Count-2).Take(2).Aggregate((a,b)=>b+a));
        f.ForEach(x=>
        {
            System.Console.WriteLine(x%6==0?"FiboNacci":x%2==0?"Fibo":x%3==0?"Nacci":x.ToString());
        });
    }
}

সম্পাদনা করুন: সমষ্টিগত পরামর্শের জন্য 320 বাইট থেকে কম লেগিয়নম্যামাল 978 এবং ওলেগস এর সি # উত্তর x% 2 && x% 3 এর জন্য x% 6 শর্টহ্যান্ডের পাশাপাশি একক রাইটলাইন বিবৃতিতে টার্নারি অপারেটর ব্যবহারের জন্য ধন্যবাদ thanks


4
আপনি কি Aggregateলিনকিউ ফাংশন শুনেছেন ?
LegionMammal978

6 টি বাইট শেভ করতে "সম" কে "টি" দিয়ে প্রতিস্থাপন করুন।
Xantix

3

পাইথন 2, 171 121 বাইট

"ব্রুট ফোর্স অ্যাপ্রোচ।"

a=[1,1]
print 1
for _ in"q"*99:print[a[1],"Fibo","Nacci","FiboNacci"][a.append(a.pop(0)+a[0])or(1-a[0]%2)+(a[0]%3<1)*2]

3

জাভাস্ক্রিপ্ট, 93 90 86 বাইট

for(a=0,b=1,i=100;i--;a=[b,b=a+b][0])console.log((b%2?'':'Fibo')+(b%3?'':'Nacci')||b)

1
আপনি চারটি বাইট পরিবর্তন করে সংরক্ষণ করতে a=[b,b=a+b][0]পারেন b=a+b,a=b-a। এছাড়াও, সম্পূর্ণ অপ্রাসঙ্গিক নোটে, স্ট্যাক ওভারফ্লোতে আপনি খুব দ্রুত উত্তর দেওয়ার যে
পদ্ধতিটি পছন্দ করেছেন তিনি

2

পাইথন 2, 100 বাইট

x=[1,1]
exec"x+=[x[-1]+x[-2]];"*98
print"\n".join(["Fibo"*(i%2==0)+"Nacci"*(i%3==0)or`i`for i in x])

বৃহত সংখ্যার জন্য, Lএটি একটি দীর্ঘ সংখ্যা দেখাচ্ছে শেষ পর্যন্ত একটি যুক্ত করুন।

যদি এটি সমস্যা হয় তবে এখানে একটি 104 বাইট সমাধান রয়েছে

x=[1,1]
exec"x+=[x[-1]+x[-2]];"*98
print"\n".join(["Fibo"*(i%2==0)+"Nacci"*(i%3==0)or str(i)for i in x])

আপনি forএই টিপটি ব্যবহার করে লুপটি সংক্ষিপ্ত করতে পারেন : কোডগল্ফ.সটাকেক্সচেঞ্জ / / 47০47//737366 । বিশেষত execটিপটি ভাল দেখাচ্ছে।
জে আতকিন

exec <program_string>*nকৌতুক জন্য +1 । নিস!
agtoever

2

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

g=x=>(a=[1,1],f=(x)=>(a[x]=y=a[x-1]+a[x-2],(y%2&&y%3?y:(!(y%2)?'Fibo':'')+(!(y%3)?'Nacci':''))+'\n'+((++x<99)?f(x):'')),'1\n1\n'+f(2))

পুনরাবৃত্তির ফাংশন যা ফিবননাচি গণনা করে, একটি অ্যারেতে রেখে ফিবো, ন্যাকি বা সংখ্যাটি আউটপুট দেয় এবং 100 পর্যন্ত পরবর্তী গণনা করার জন্য নিজেকে কল করে।

এটি জাভাস্ক্রিপ্ট সংখ্যা যথাযথতার কারণে 73 এ বিরতি দেয়। এটির কাছাকাছি যাওয়ার একমাত্র উপায় হ'ল আমার নিজের বিট গণনা যুক্ত করা।


এই কাজ করে না, এটা পরে গোলমাল 5527939700884757 + 8944394323791464 = 14472334024676220যখন এটি হওয়া উচিত 14472334024676221কারণ জাভাস্ক্রিপ্ট 16 বিট স্পষ্টতা ভাসে ব্যবহার করে এবং যে স্পষ্টতা 17 বিট প্রয়োজন। আপনারও 1দু'বার মুদ্রণ করা উচিত ।
জর্জ রিথ

মুদ্রণটি 2 বার যুক্ত করেছে। যথাযথতার জন্য, কোডটি কাজ করার জন্য আমাকে কোডের প্রত্যেকটি পরিবর্তন করতে হবে (সংখ্যাটি ব্যবহার না করে ইউন্ট 32 অ্যারে এবং বিটের সাহায্যে গণনা বিট করা)
নওয়াক

2

QBasic, 144 141 বাইট

বিশেষত ছোট নয়, তবে এটি সি ++ এবং সি # কে পরাজিত করে

r=1:FOR i=1 TO 046:a$="":q=p+r
IF q MOD 2=0 THEN a$="Fibo"
IF q MOD 3=0 THEN a$=a$+"Nacci"
IF a$="" THEN a$=STR$(q)
PRINT a$:r=p:p=q:NEXT

কোন ঘোষণা নেই, ব্যবহৃত : যেখানে যেখানেই সম্ভব কারণ এটি 1 বাইটের চেয়ে কম সস্তা CRLF। লুপের কাউন্টারে 0 টি উপসর্গযুক্ত: বেসিক 47 তম ফিবোনাচি চরিত্রটিতে উপচে পড়বে, সুতরাং সেখানে থাকা অতিরিক্ত বাইটের জন্য ক্ষতিপূরণ দেওয়া হবে।

সম্পাদনা: নীল আমাকে 3 বাইট: 141 বাইট সংরক্ষণ করেছে।


আপনি প্রথমটি মুছে ফেলতে পারেন a$+ যেহেতু এটি এই সময়ে খালি স্ট্রিং হিসাবে পরিচিত।
নিল

2

ওল্ফ্রাম ভাষা, 84 বাইট

অন্তর্নির্মিত কারণ অবশ্যই প্রতারক ধরনের Fibonacci

t=Fibonacci@Range@100;g=(t[[#;;;;#]]=#2)&;g[3,Fibo]g[4,Nacci]g[12,FiboNacci]Print/@t

স্ক্রিপ্টটি চালাতে কমান্ডের উদাহরণ দিন

/Applications/Mathematica.app/Contents/MacOS/WolframKernel -script ~/Desktop/fibo.wl

2

পার্ল, 74 বাইট

map{print+(Fibo)[$_%2].(Nacci)[$_%3]||$_ for$a+=$b||1,$b+=$a}1..50

নিম্নলিখিত কমান্ড লাইন বিকল্পের প্রয়োজন:, -lMbigint8 হিসাবে গণনা করা।


নমুনা ব্যবহার

$ perl -lMbigint fibo-nacci.pl

পার্ল, 79 বাইট

use bigint;map{print+(Fibo)[$_%2].(Nacci)[$_%3]||$_,$/for$a+=$b||1,$b+=$a}1..50

উপরের মত একই, কোনও কমান্ড লাইন বিকল্পের প্রয়োজন ছাড়াই।


2

গল্ফস্ক্রিপ্ট, 47 বাইট

100,{1.@{.@+}*;..2%!'Fibo'*\3%!'Nacci'*+\or}%n*

ব্যাখ্যা

100,            # push 0..99
{               # map
  1.@           # push 1 twice, rotate counting var to the top
  {             # apply that many times
    .@+         # copy the top, rotate and add
                # if the stack is [a b], this produces: [a b b] -> [b b a] -> [b b+a]
  }*
  ;..           # discard the top, duplicate twice
  2%!'Fibo'*\   # divisible by 2 ? 'Fibo' : ''
  3%!'Nacci'*   # divisible by 3 ? 'Nacci' : ''
  +\or          # concatenate, if empty use the numeric value instead
}%
n*              # join all with a newline

2

প্যারি / জিপি, 76 76 73 বাইট

মিচ শোয়ার্টজের সৌজন্যে তিনটি বাইট সংরক্ষণ করেছেন ।

for(n=b=!a=1,99,b=a+a=b;print(if(b%2,"",Fibo)if(b%3,if(b%2,b,""),Nacci)))

নমুনা ব্যবহার

$ gp -qf < fibo-nacci.gp

1
বিল্ট-ইন ব্যবহার না করা এটির চেয়ে কম; আমি পেয়েছি 73for(i=b=!a=1,99,b=a+a=b; ...
মিচ শোয়ার্জ

1
@ মিচশওয়ার্টজ এটি বলা হত fibo;)
প্রিমো

2

> <>, 128 119 বাইট

111&v       >:3%0=?v>  v
?;ao>:2%0=?v :3%0=?v :n>:}+&:1+&aa*=
            ^oooo < ^ooooo <
           >"obiF"^>"iccaN"^

আমি নির্লজ্জভাবে একটি বিদ্যমান প্রোগ্রাম ফিজবজ প্রোগ্রাম ধার করে চুরি করে ফিবো ন্যাক্সি সিক্যুয়েন্সের জন্য কাজ করার জন্য এটি সংশোধন করেছি। এটি চিরকালের জন্য সংখ্যাগুলি আউটপুট করে। এখন এটি স্থির, অর্থাৎ এটি কেবল 100 সংখ্যা আউটপুট করে। এখানে চেষ্টা করুন


2
আপনাকে কেবল প্রথম 100 টি ফিবো ন্যাক্সির সংখ্যা আউটপুট করতে হবে, আরও কিছু নয়, কমও নয়।
ক্রিটসি লিথোস

@ ΚριτικσιΛίθος অবশেষে আমি এটিকে কেবল 100 টি আউটপুট তৈরি করেছিলাম।
DanTheMan

এটি টিআইও-তে 101 নম্বর আউটপুট দেয় তবে লিঙ্কযুক্ত সাইটে কাজ করে না
জো কিং

1

পাইথ, 51 বাইট

V.Wn100lHaZ+@Z_1@Z_2[1 1)|+*"Fibo"}2JPN*"Nacci"}3JN

ফিবোনাচি ক্রম উত্পন্ন করে তারপরে কী প্রিন্ট করা যায় তা স্থির করে।

                    [1 1)                           - H = [1,1]
  Wn100lH                                           - While len(H)!=100 
         aZ+@Z_1@Z_2                                - H.append(H[-1]+H[-2])
V.                                                  - For N in H:
                                    JPN             - Set J to the prime factorization of H
                           *"Fibo"}2J               - If there is a 2 in the factorization, add "Fibo" to a string
                                       *"Nacci"}3J  - If there is a 3 in the factorization, add "Nacci" to a string
                          +                         - Join them together
                         |                        N - If the string isn't empty (If it isn't divisible by 2 or 3), print N
                                                    - Else print the string

পরীক্ষা করতে, এটি ব্যবহার করে দেখুন (কেবলমাত্র প্রথম 20 টি সংখ্যা রয়েছে)

V.Wn20lHaZ+@Z_1@Z_2[1 1)|+*"Fibo"}2JPN*"Nacci"}3JN

আসল প্রোগ্রামটি চালাতে কতক্ষণ সময় লাগে?
ক্রিটসি লিথোস

আমার কোনও ধারণা নেই, 30 সেকেন্ডে এটি কার্যকর হয়নি যে এত বড় প্রধান মৌলিক কারণগুলি কার্যকর করা সম্ভবত এটি অনেকটা ধীর করে দেবে।
নীল

1

ক্লোজার, 127 বাইট

(def f(lazy-cat[1 1](map +' f(rest f))))(doseq[x(take 100 f)](println(str(if(even? x)'Fibo)({0'Nacci}(mod x 3)(if(odd? x)x)))))

Ungolfed:

(def fib (lazy-cat [1 1] (map +' fib (rest fib))))

(doseq [x (take 100 fib)]
  (println (str (if (even? x) 'Fibo)
                ({0 'Nacci}
                 (mod x 3)
                 (if (odd? x) x)))))

কিছু কৌশল ব্যবহৃত:



@ ΚριτικσιΛίθος এটি অলসভাবে একাধিক সিক্যুয়েন্সকে সম্মতি দেয়। এই ক্ষেত্রে, এটি ফিবোনাচি সিকোয়েন্সের প্রথম দুটি উপাদানকে সম্মতি জানায় ( [1 1]) প্রতিটি ফাইবোনাকি অনুক্রমের নিম্নলিখিত উপাদানগুলির সাথে সংশ্লেষের ফলাফলের সাথে।
স্যাম এস্তেপ

আমি কি অনুমান করার পক্ষে ঠিক আছি যে এটি মূলত ক্লোজারের সংস্করণ fibs = 0 : 1 : zipWith (+) fibs (tail fibs)?
সোহম চৌধুরী

@ সোহমচৌধুরী হ্যাঁ, আমি যতদূর বলতে পারি।
স্যাম এস্তেপ



1

জাভাস্ক্রিপ্ট (ES2015), 99 বাইট

f=n=>n<3?1:f(n-1)+f(n-2);for(i=0;i<100;)console.log((f(++i)%2?'':'Fibo')+(f(i)%3?'':'Nacci')||f(i))

Ungolfed:

// fibonacci function
var fibonacci = (n) => n < 3 ? 1 : fibonacci(n-1) + fibonacci(n-2) // (implicit return)

for (var i = 0; i<100;) {
  var output = fibonacci(++i) % 2 !== 0 ? '' : 'Fibo';
  output += fibonacci(i) % 3 !== 0 ? '' : 'Nacci';
  console.log(output || fibonacci(i));
}

alertপরিবর্তে ব্যবহার করুন console.log; এটি কিছু বাইট বন্ধ করে দেয়
ক্রিটসি লিথোস

1

এফ #, 202 163 149 বাইট

Seq.unfold(fun(a,b)->printfn"%s"(a%6m|>function|0m->"FiboNacci"|2m|4m->"Fibo"|3m->"Nacci"|_->string a);Some(1,(b,a+b)))(1m,1m)|>Seq.take 100|>Seq.sum

এটি একটি এফএসএক্স (এফ # স্ক্রিপ্ট) ফাইল


আমি আশ্চর্য হয়েছি যে এটি কাজ করে
অসিবিহিত

1

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

<?for(;4e20>$b=bcadd($a,$a=$b)?:1;)echo[Fibo][++$i%3].[Nacci][$i%4]?:$b,~õ;

Surpisingly প্রতিযোগিতামূলক। পিএইচপি v5.5 বা তত্সহীনতর বৈশিষ্ট্যগুলি সরবরাহ করে। আমি ডিফল্ট সেটিংস ধরে নিয়েছি, কারণ এগুলি কোনও .ini ছাড়াই রয়েছে (বিকল্পের সাথে আপনি আপনার স্থানীয় .ini অক্ষম করতে পারেন -n)।


নমুনা ব্যবহার

$ php -n fibo-nacci.php

ইনস্টল থাকা -n bcaddসত্ত্বেও WIth কাজ করে না bcmath-n প্রচুর স্টাফ ছাড়াই স্ট্যাডারে আউটপুট হয়।
সিলেস্টার

আমার বাক্সে (এসএস) কাজ করে।
primo

1

প্রোলোগ, 182 বাইট

f(A,B,X):-X<100,C is A+B,Z is X+1,(Y is B mod 6,Y=0->writeln('FiboNacci');(Y is B mod 2,Y=0->writeln('Fibo');(Y is B mod 3,Y=0->writeln('Nacci');writeln(B)))),f(B,C,Z).
p:-f(0,1,0).

এটি অনলাইন ব্যবহার করে দেখুন এখানে
প্রোগ্রাম চালাতে, কোয়েরি ব্যবহার করুন:

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