/
usr
/
share
/
doc
/
bc
/
examples
/
/usr/share/doc/bc/examples
mkdir
upload
Name
Size
Mode
Actions
ckbook.b
330
0644
edit
dl
rm
pi.b
1188
0644
edit
dl
rm
primes.b
633
0644
edit
dl
rm
twins.b
710
0644
edit
dl
rm
Edit:
/usr/share/doc/bc/examples/pi.b
(1188B)
/* This is a program to determine the distribution of digits in the fraction part of PI. It will look at the first scale digits. The results are left in the global variable digits. digits[0] is the number of 0's in PI. This program requires the math library. */ define pi () { auto ix, pi, save_scale, work; save_scale = scale; scale += 5; print "\n\nCalculating PI to ",scale," digits. Please wait . . ."; pi = 4*a(1); scale -= 5; work = pi; print "\nCounting digits. . ."; for (ix = 0; ix < 10; ix++) digits[ix] = 0; /* Extract the One's digit from pi. */ scale = 0; one_digit = work / 1; for (ix = save_scale; ix > 0; ix--) { /* Remove the One's digit and multiply by 10. */ scale = ix; work = (work - one_digit) / 1 * 10; /* Extract the One's digit. */ scale = 0; one_digit = work / 1; digits[one_digit] += 1; } /* Restore the scale. */ scale = save_scale; /* Report. */ print "\n\n" print "PI to ", scale, " digits is:\n", pi/1, "\n\n" print "The frequency of the digits are:\n" for (ix = 0; ix < 10; ix++) { print " ", ix, " - ", digits[ix], " times\n" } print "\n\n" }
Save
cmd:
run