Data update
This commit is contained in:
parent
0df55f9f24
commit
aec8ed51b6
1045 changed files with 18889 additions and 2777 deletions
42
Task/Sum-to-100/UNIX-Shell/sum-to-100.sh
Normal file
42
Task/Sum-to-100/UNIX-Shell/sum-to-100.sh
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
sumto100() {
|
||||
typeset expr sum max_count=0 max_values i
|
||||
typeset -A histogram
|
||||
printf 'Strings that evaluate to 100:\n'
|
||||
for expr in {,-}1{,+,-}2{,+,-}3{,+,-}4{,+,-}5{,+,-}6{,+,-}7{,+,-}8{,+,-}9
|
||||
do
|
||||
(( sum = expr ))
|
||||
if (( sum == 100 )); then
|
||||
printf '\t%s\n' "$expr"
|
||||
fi
|
||||
histogram[$sum]=$(( ${histogram[$sum]:-0}+1 ))
|
||||
if (( histogram[$sum] > max_count )); then
|
||||
(( max_count = histogram[$sum] ))
|
||||
max_values=( $sum )
|
||||
elif (( histogram[$sum] == max_count )); then
|
||||
max_values+=( $sum )
|
||||
fi
|
||||
done
|
||||
printf '\nMost solutions for any number is %d: ' "$max_count"
|
||||
if [[ -n $ZSH_VERSION ]]; then
|
||||
printf '%s\n\n' "${(j:, :)max_values}"
|
||||
else
|
||||
printf '%s' "${max_values[0]}"
|
||||
printf ', %s' "${max_values[@]:1}"
|
||||
printf '\n\n'
|
||||
fi
|
||||
|
||||
for (( i=1; i<123456789; ++i )); do
|
||||
if (( !histogram[$i] )); then
|
||||
printf "Lowest positive sum that can't be expressed: %d\n\n" "$i"
|
||||
break
|
||||
fi
|
||||
done
|
||||
printf 'Ten highest reachable numbers:\n';
|
||||
if [[ -n $ZSH_VERSION ]]; then
|
||||
printf '\t%9d\n' "${(k@)histogram}"
|
||||
else
|
||||
printf '\t%9d\n' "${!histogram[@]}"
|
||||
fi | sort -nr | head -n 10
|
||||
}
|
||||
|
||||
sumto100
|
||||
Loading…
Add table
Add a link
Reference in a new issue