Pancake numbers: Difference between revisions

Content added Content deleted
Line 160: Line 160:
{{out}}
{{out}}


<pre>p( 1) = 0 p( 2) = 1 p( 3) = 3 p( 4) = 4 p( 5) = 5
p( 6) = 7 p( 7) = 8 p( 8) = 9 p( 9) = 10 p(10) = 11
p(11) = 13 p(12) = 14 p(13) = 15 p(14) = 16 p(15) = 17
p(16) = 18 p(17) = 19 p(18) = 20 p(19) = 21 p(20) = 23</pre>

=={{header|D}}==
{{trans|C}}
<lang d>import std.stdio;

int pancake(int n) {
int gap = 2, sum = 2, adj = -1;
while (sum < n) {
adj++;
gap = 2 * gap - 1;
sum += gap;
}
return n + adj;
}

void main() {
foreach (i; 0..4) {
foreach (j; 1..6) {
int n = 5 * i + j;
writef("p(%2d) = %2d ", n, pancake(n));
}
writeln;
}
}</lang>
{{out}}
<pre>p( 1) = 0 p( 2) = 1 p( 3) = 3 p( 4) = 4 p( 5) = 5
<pre>p( 1) = 0 p( 2) = 1 p( 3) = 3 p( 4) = 4 p( 5) = 5
p( 6) = 7 p( 7) = 8 p( 8) = 9 p( 9) = 10 p(10) = 11
p( 6) = 7 p( 7) = 8 p( 8) = 9 p( 9) = 10 p(10) = 11