পাওয়ারশেল, 420 বাইট (অযা) 378 বাইট
param($n);[int[]]$p="03141592653589793238462643383279502884197169399375"-Split'';$a=@(0,3,4);for($i=3;$i-lt50;$i++){$a+=$a[$i-1]+$a[$i-2]};$c=[char[]]"00001010111010111010111011111010111110111010111011111011111010111110111";$b=@(0);for($i=4;$i-le70;$i++){if($c[$i]-eq'1'){$b+=$i}};[double]$r=$a[$n]/$b[$n];$q=$p[$n+1];$s="";(0..($q-1))|%{$s+="0"};([math]::Round($r,$q,[MidpointRounding]::AwayFromZero)).ToString("0.$s")
প্রশ্নটি গোল করে কী করে তা গণনা করার জন্য, 41 বাইট সংরক্ষণের জন্য আইএএসএজিগকে ধন্যবাদ । মানে আমাকে ভয়ঙ্কর অন্তর্ভুক্ত করতে হবে না[MidpointRounding]::AwayFromZero
করতে হবে না এবং এটিকে স্পষ্টভাবে একটি হিসাবে কাস্ট করার দরকার[double]
।
এই এক দুর্দান্ত মজা ছিল!
সম্প্রসারিত:
# Take input N
param($n)
# First digits of pi, stored as integer array
[int[]]$p="03141592653589793238462643383279502884197169399375"-Split''
# Fibonacci sequence A(N)
$a=@(0,3,4)
for($i=3;$i-lt50;$i++){
$a+=$a[$i-1]+$a[$i-2]
}
# Zero-indexed bitmask for if the n-th integer is composite (1) or not (0)
$c=[char[]]"00001010111010111010111011111010111110111010111011111011111010111110111"
# Populate B(N) as an array using the $c mask
$b=@(0)
for($i=4;$i-le70;$i++){
if($c[$i]-eq'1'){
$b+=$i
}
}
# Calculation Time!
$r=(a($n))/$b[$n]
# A small golf, as $p[$n+1] gets used a couple times
$q=$p[$n+1]
# Need to generate a string of zeroes for padding
$s=""
(0..($q-1))|%{$s+="0"}
# Round the number, then send it to a string so we get the necessary number of zeroes
([math]::Round($r,$q)).ToString("0.$s")
পাওয়ারশেলে পুনরাবৃত্তি হ'ল ... ধীর, আমরা কি বলব, তাই আমাদের তৈরি করতে হবে A(N)
অন্য দিকটি করতে হবে এবং এটিকে একটি অ্যারেতে সংরক্ষণ করতে হবে, তারপরে এটি সূচী করুন।
পুরোনো
এছাড়াও, পবিত্র গরু, আউটপুট প্রয়োজনীয়তাগুলি এটিকে হত্যা করে। পাওয়ারশেল ডিফল্ট হিসাবে গোলাকার-থেকে-নিকটতম এক / কে / কোনও ব্যাংকারের রাউন্ডিং, যা গোলাকার শৈলীতে[MidpointRounding]::AwayFromZero
স্যুইচ করার জন্য অসাধারণ ক্রিয়াপদ ব্যবহার করে । তারপরে, আমাদের তারপরে জিরোগুলিকে প্যাড করা দরকার, যদি কোনও হয়। ঐ দুটি প্রয়োজনীয়তা লাইনের গত কয়েক থেকে ঘুরে মিলিত 20 বাইট থেকে 102 বাইট (থেকে থেকে ) ... ঘেউ। [math]::Round($r,$q)
$s=""
+$s)
C(n)
অঙ্কগুলি বললে , আমাদের কি 0 এর পিছনে অন্তর্ভুক্ত করতে হবে?