Positive decimal integers with the digit 1 occurring exactly twice: Difference between revisions

Added Algol W
m (→‎{{header|Phix}}: single sprint)
(Added Algol W)
Line 31:
119 121 131 141 151 161 171 181 191 211
311 411 511 611 711 811 911
</pre>
 
=={{header|ALGOL W}}==
Generates the numbers and sorts them into order using [[Sorting algorithms/Quicksort#ALGOL W]].
<lang algolw>begin % find numbers where the digit 1 occurs twice, up to 999 %
integer double1Count;
integer array double1 ( 1 :: 100 ); % assume there will be at most 100 numbers %
% Quicksorts in-place the array of integers v, from lb to ub - external %
procedure quicksort ( integer array v( * )
; integer value lb, ub
) ; algol "sortingAlgorithms_Quicksort" ;
% increments n by 1 and returns its new value %
integer procedure inc ( integer value result n ) ; begin n := n + 1; n end inc ;
% generate the numbers %
double1Count := 0;
for i := 0 until 9 do begin
if i not = 1 then begin
double1( inc( double1Count ) ) := 110 + i;
double1( inc( double1Count ) ) := 101 + ( i * 10 );
double1( inc( double1Count ) ) := ( i * 100 ) + 11
end if_i_ne_1
end for_i ;
% sort the numbers %
quickSort( double1, 1, double1Count );
% print the numbers %
for i := 1 until double1Count do writeon( i_w := 1, s_w := 1, double1( i ) );
write();
write( i_w := 1, s_w := 0, "Found ", double1Count, " numbers" )
end.</lang>
{{out}}
<pre>
11 101 110 112 113 114 115 116 117 118 119 121 131 141 151 161 171 181 191 211 311 411 511 611 711 811 911
 
Found 27 numbers
</pre>
 
3,044

edits