Last list item: Difference between revisions
Content added Content deleted
(Place "with sorting" before "without sorting".) |
Catskill549 (talk | contribs) (added AWK) |
||
Line 113: | Line 113: | ||
List: 243 378; two smallest: 243 @ 1 and 378 @ 2; sum = 621 |
List: 243 378; two smallest: 243 @ 1 and 378 @ 2; sum = 621 |
||
Last item is 621. |
Last item is 621. |
||
</pre> |
|||
=={{header|AWK}}== |
|||
<lang AWK> |
|||
# syntax: GAWK -f LAST_LIST_ITEM.AWK |
|||
BEGIN { |
|||
split("6,81,243,14,25,49,123,69,11",arr1,",") |
|||
PROCINFO["sorted_in"] = "@val_num_asc" |
|||
while (length(arr1) > 1) { |
|||
for (i in arr1) { printf("%s ",arr1[i]) } # show sorted list |
|||
j = 0 |
|||
delete arr2 |
|||
for (i in arr1) { arr2[++j] = arr1[i] } # copy arr1 into arr2 |
|||
sum = arr2[1] + arr2[2] |
|||
printf(": %s+%s=%s\n",arr2[1],arr2[2],sum) |
|||
delete arr2[2] |
|||
arr2[1] = sum |
|||
delete arr1 |
|||
for (i in arr2) { arr1[i] = arr2[i] } # copy arr2 into arr1 |
|||
} |
|||
printf("sum=%d\n",sum) |
|||
exit(0) |
|||
} |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
6 11 14 25 49 69 81 123 243 : 6+11=17 |
|||
14 17 25 49 69 81 123 243 : 14+17=31 |
|||
25 31 49 69 81 123 243 : 25+31=56 |
|||
49 56 69 81 123 243 : 49+56=105 |
|||
69 81 105 123 243 : 69+81=150 |
|||
105 123 150 243 : 105+123=228 |
|||
150 228 243 : 150+228=378 |
|||
243 378 : 243+378=621 |
|||
sum=621 |
|||
</pre> |
</pre> |
||