কুইন চ্যালেঞ্জ আই


12

চ্যালেঞ্জ

এই টাস্কে আপনাকে এমন একটি প্রোগ্রাম লিখতে হবে যা ইনপুট নিতে হবে N (-1e9 <= N <0 && 0 <N <= + 1e9) , তারপরে টি = ( অ্যাবস (এন)% এম + 1) গণনা করুন , এন ইতিবাচক হয় তারপরে শুরু থেকে টি-তম অক্ষরটিকে আউটপুট দেয় অন্যথায় আপনার উত্সের প্রান্ত থেকে টি-থ্রি চরিত্রটি আউটপুট দেয়।

বাইটে এম আপনার উত্সের আকার।

উদাহরণ: যদি আপনার উত্স হয়:abcd efg/hi

ইনপুট:

 2

আউটপুট:

 c

ইনপুট :

-3

আউটপুট:

g 

ইনপুট :

-9249678

আউটপুট:

b 

ইনপুট :

-11

আউটপুট:

i 

সীমাবদ্ধতাসমূহ

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

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


পরীক্ষার ক্ষেত্রে উদাহরণ দিন ইনপুটটি যদি 5 বা -7 হয় তবে আউটপুটটির একক স্থান হওয়া উচিত: "" (উদ্ধৃতি ব্যতীত)।
কুইসোটিক


@ ই বিজনেস: এটি চিহ্নিত করার জন্য ধন্যবাদ, আমি সমস্যার বিবৃতি পরিবর্তন করেছি, আমি মনে করি না যে $ 0 now এখন ঘটতে পারে :-)
কুইক্সটিক

3
এটি বাছাই করা একটি অদ্ভুত ম্যাপিং হিসাবে চালিয়ে যায়, এখন 0 থেকে 1: লাফের সময়ে একটি চরিত্র এড়ানো যায় -2 -> / -1 -> h 0 -> i 1 -> b 2 -> c। তবে কমপক্ষে ম্যাপিং এখন সর্বসম্মত।
এআআআআআআআআআআআআআআআআআআআআআআআআআআআআ

1
আমার ধারণা &&প্রথম বাক্যে একটি বোঝানো হয়েছে ||?
পাওলো ইবারম্যান

উত্তর:


12

x86 সমাবেশ (32-বিট লিনাক্স, এটি অ্যান্ড টি সিনট্যাক্স): 548

ফাইলের শেষে কোনও নতুন লাইন নেই:

pushl 8(%esp)
call atoi
mov $274,%ebx
cmp $0,%eax
jg a
dec %eax
a:cdq
idiv %ebx
cmp $0,%edx
jge p
add %ebx,%edx
p:add $s,%edx
cmp $s+273,%edx
jl l
push $34
mov %esp,%edx
l:mov $4,%eax
mov $1,%ebx
mov %edx,%ecx
mov $1,%edx
int $128
mov $0,%ebx
mov $1,%eax
int $128
s:.ascii "pushl 8(%esp)
call atoi
mov $274,%ebx
cmp $0,%eax
jg a
dec %eax
a:cdq
idiv %ebx
cmp $0,%edx
jge p
add %ebx,%edx
p:add $s,%edx
cmp $s+273,%edx
jl l
push $34
mov %esp,%edx
l:mov $4,%eax
mov $1,%ebx
mov %edx,%ecx
mov $1,%edx
int $128
mov $0,%ebx
mov $1,%eax
int $128
s:.ascii "

আমি এটি দিয়ে সংকলিত gcc -nostartfiles -m32 qc1.S -o qc1

যাচাইকরণ, ধনাত্মক সংখ্যা:

$ for i in $(seq 548 1095); do ./qc1 $i; done | cmp - qc1.S && echo Good
Good

যাচাই, নেতিবাচক সংখ্যা:

$ for i in $(seq -1095 -548); do ./qc1 $i; done | cmp - qc1.S && echo Good
Good

সম্পাদনা করুন এটা অদ্ভুত সংখ্যায়ন স্কীম সম্পর্কে সঠিক পেয়েছিলাম। আমি মনে করি. এটি দৈর্ঘ্য পরিবর্তন করে নি।


+ 1, এটি সমাবেশে করা উজ্জ্বল কাজ, তবে একটি ছোট বিষয় যা আমি সর্বসম্মতভাবে পরীক্ষার জন্য সমস্যাটি সংশোধন করেছি তাই দয়া করে আপনার সমাধানটি যেমন-বিজ্ঞানীকে ধন্যবাদ, ধন্যবাদ।
কুইসোটিক

হেই, বেশ দুর্দান্ত। এবং একটি মজার বিষয়, এতগুলি ভিন্ন ভাষা সত্ত্বেও এটি আমার 44 টি চরিত্রের গল্ফস্ক্রিপ্ট সমাধানের সাথে সাদৃশ্যপূর্ণ বলে মনে হয়।
এআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআ।

1
@ দেবানজান: আমি মনে করি না যে আমি সংখ্যাটি স্কিমের চারপাশে আমার মাথা গুটিয়ে রাখতে সক্ষম হব। আপনি কি সঠিক যাচাইয়ের লাইন সরবরাহ করতে পারেন? (সমস্যার বিবৃতিটি একটি ভাল জায়গা হবে)
জেবি

+1, এটি আপনার দ্বিতীয় "অবৈধ" asnwer (কোড-গল্ফ ওয়াইস) যা উন্নয়নের পক্ষে মূল্যবান :)
এলেভেক্স

@ ইলেভেক্স: রেকর্ডটির জন্য, অন্যটি পোস্ট হওয়ার সময় বৈধ ছিল।
জেবি

10

Whaddaya জানেন, এইচকিউ 9 + এটি দুর্দান্ত ফিরে আসে!

Q

যখন কেবলমাত্র একটি চরিত্র বেছে নিতে পারে তখন সূচকে বিরক্ত করার দরকার নেই!


এটি কোন ইনপুট লাগে?
কুইসোটিক

@ দেবানজান: নিশ্চিত:echo '-1' | hq9+ qc1
জেবি

দুঃখিত, এটি আমার কাছে খুব একটা বোঝায় না, পিএইচপি- তে আমার একই ধরণের সমাধান রয়েছে তবে এই ধরণের সমাধানটি কী সমস্ত মজা নষ্ট করে না? ধন্যবাদ,
কুইসোটিক

আপনি না আছে সেটা মেনে নিতে যদি আপনি এটি মধ্যে ফিট করে মনে করি না, আপনি কি জানেন! এমনকি আপনি এটি upvote করতে হবে না। আপনি এমনকি এটি ডাউনওয়েট করতে পারেন, যদিও আমি ব্যক্তিগতভাবে প্রশংসা করি না ;-)
জেবি

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

5

রুবি 1.9, 66 টি অক্ষর

z=gets.to_i;s="z=gets.to_i;s=%p;$><<(s%%s)[z%%66]";$><<(s%s)[z%66]

একটি সাধারণ কুইনের সাথে খুব বেশি পার্থক্য নেই, আসলে।

  • সম্পাদনা: এখন নতুন চশমা অনুসরণ।

5

গল্ফস্ক্রিপ্ট 26 অক্ষর

{':f`f'+1/\~.1<- 26%=}:f`f

গতিশীল ভাষাগুলির আবিষ্কারের আগে কুইনগুলি আরও মজাদার ছিল।

সম্পাদনা করুন: শুকনাদের জন্য এখানে একটি "আসল" গল্ফস্ক্রিপ্ট কুইন রয়েছে, কেবলমাত্র ইনপুট পার্সিংয়ের জন্য ব্যবহৃত হয় না `এবং।।

প্রতিবন্ধী গল্ফস্ক্রিপ্ট 44 টি অক্ষর

'"\x27"\+1/\~.1<- 22%='"\x27"\+1/\~.1<- 22%=

লক্ষ্য করুন যে এটি একই স্ট্রিংয়ের সাথে দু'বার পুনরাবৃত্তি হয়েছে, সুতরাং স্ট্রিং আক্ষরিকের 'সামনে কেবল একটি হ্যাক দরকার এবং এটি ব্যবহারের জন্য প্রস্তুত।


1
আমি গল্ফস্ক্রিপ্ট জানি না, তবে আপনার মন্তব্য আমাকে মনে করতে বাধ্য করে যে আপনার কোডটি "ফাইল অপারেশন" বিভাগের সীমাবদ্ধতার দিকে ঝুঁকছে। এর অভ্যন্তরের প্রসারিত করতে যত্নশীল?
জেবি

ম্যাজিকটি `অপারেটরের ব্যবহারের দ্বারা ঘটে থাকে, মূলত আমি একটি ফাংশন সংজ্ঞায়িত করি, এটি একটি ভেরিয়েবলে সংরক্ষণ করি, ফাংশনটিকে তার নিজস্ব স্ট্রিং উপস্থাপনায় রূপান্তর করি (` এটি করে) এবং তারপরে আমি ফাংশনটি চালিত করি, যা তুচ্ছভাবে কাজ শেষ করতে পারে এটি স্ট্রিং এর নিজস্ব অন্তর্গত আছে।
আআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআগে।

+1: থেকে Quines were more fun before the invention of dynamic languages.:-)
কুইসোটিক

3
আচ্ছা আমি নিশ্চিত যে জাহান্নাম এটিকে সমাবেশ ভাষায় চেষ্টা করবে না ...
জেবি

6
যে আঁচড়ের দাগ. আমি সমাবেশ ভাষায় এটি চেষ্টা করেছিলাম ।
জেবি

2

দৈর্ঘ্য, 4 বাইট

উত্স কোড 4 টি নাল বাইট নিয়ে গঠিত। ইনপুট নির্বিশেষে, আউটপুটটি নাল বাইট হওয়া উচিত, যা একটি .নির্দেশ দ্বারা সম্পন্ন হয় ।


0

স্মার্টটাক, 94 90 59 52

উদাহরণস্বরূপ, অবজেক্ট শ্রেণিতে, সংকলন:

q:n|s|s:=thisContext method source.^s at:n\\s size+1

তারপরে যে কোনও বস্তুতে q: <n> প্রেরণ করুন; এখানে একটি পূর্ণসংখ্যা:

প্রতিপাদন:

1 q: 0 -> q
1 q: 1 ->:
1 q: 2 -> n
...
1 q: -1 ->)
1 q: -2 ->)
1 q: -3 -> 1

বা আরও ভাল:
(0 থেকে: 100) সংগ্রহ করুন: [: n | 1 কিউ: এন] হিসাবে: স্ট্রিং
->')q:n|s m|s:=thisContext method source.m:=s size.^s at:(n>=0ifTrue:n-1\\m+1ifFalse:m-(0-n\\m))q:n|s m|'

(-1 ডাউনটো: -500) সংগ্রহ করুন: [: n | 1 কিউ: এন] হিসাবে: স্ট্রিং
->')m\\n-0(-m:eslaFfi1+m\\1-n:eurTfi0=>n(:ta s^.ezis s=:m.ecruos dohtem txetnoCsiht=:s|m s|n:q))m\\n-0('

নন-
স্মল্টকারদের জন্য ব্যাখ্যা: এই কনটেক্সটটি হ'ল স্ট্যাক ফ্রেম, যা এর পদ্ধতির জন্য জিজ্ঞাসা করা যেতে পারে , যার উত্স জানতে চাওয়া যেতে পারে ।


0

রুনিক এনেক্যান্টমেন্টস , 17 বাইট

"3X4+kSq:l͍iS%%@

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

প্রোগ্রাম স্ট্রিং উত্পন্ন করতে কেবল স্ট্যান্ডার্ড কুইন ব্যবহার করে, তারপরে একটি নির্দিষ্ট সূচীতে অক্ষর পেতে স্ট্রিং-ভিত্তিক মডুলো অপারেটর 1 ব্যবহার করে (যা নেতিবাচক এবং ইতিবাচক সূচকগুলিকে সমর্থন করে যা পাইথন দ্বারা প্রভাবিত আচরণ)।

  1. ,"ডিভাইড" কমান্ড মধ্যেও খন্ডে স্ট্রিং আপ (লজিক্যাল যথেষ্ট বিপরীত *স্ট্রিং অনুরূপ xবার), +যোগসূত্র এবং -অপসারণ xশেষ থেকে অক্ষর (একটি লজিক্যাল যথেষ্ট বিপরীত +)। সুতরাং %কমান্ড ভূমিকা নেয় charAt(x): শুধুমাত্র মৌলিক স্ট্রিং অপারেশন অবশিষ্ট (। পরে স্ট্যাকের মত অপারেশন একই কমান্ড যে স্ট্যাকের সঙ্গে চুক্তি দ্বারা পরিচালিত হচ্ছে; যেমন lস্ট্যাকের আকার যাতে একটি স্ট্রিংয়ের দৈর্ঘ্য হল)।

0

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

f=n=>("f="+f).substr(n%28,1)

একটি পরিবর্তিত কুইন।

28 এর চেয়ে বড় একটি মান এটি দ্বারা পরিচালিত হয় %28, 0 এর চেয়ে কম মান হ্যান্ডল করে .substr()

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