Largest five adjacent number: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (→{{header|Raku}}: Add a Raku example) |
(Added Wren) |
||
Line 40: | Line 40: | ||
The largest number is: |
The largest number is: |
||
99638 |
99638 |
||
</pre> |
|||
=={{header|Wren}}== |
|||
{{libheader|Wren-fmt}} |
|||
Very simple approach as there's little need for speed here. |
|||
<lang ecmascript>import "random" for Random |
|||
import "/fmt" for Fmt |
|||
var rand = Random.new() |
|||
var digits = List.filled(1000, 0) |
|||
for (i in 0...999) digits[i] = rand.int(10) |
|||
var number = digits.join() |
|||
for (i in 99999...0) { |
|||
var quintet = Fmt.swrite("$05d", i) |
|||
if (number.contains(quintet)) { |
|||
Fmt.print("The largest number formed from 5 adjacent digits is: $,d", Num.fromString(quintet)) |
|||
return |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
Sample output: |
|||
<pre> |
|||
The largest number formed from 5 adjacent digits is: 99,850 |
|||
</pre> |
</pre> |
Revision as of 16:25, 27 September 2021
Largest five adjacent number is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
- Task
Generate random 1000-digit number.
Find the five adjacent digits in the 1000-digit number that is largest.
Raku
<lang perl6>say (^10).roll(1000).rotor(5 => -4)».join.max</lang>
- Sample output (it's random):
99625
Ring
<lang ring> digit = "" max = 0 maxOld = 0 limit = 1000
for n = 1 to limit
rand = random(9) randStr = string(rand) digit += randStr
next
for n = 1 to len(digit)-5
res = substr(digit,n,5) resNum = number(res) if resNum > maxold max = resNum maxOld = max ok
next
see max + nl </lang>
- Output:
The largest number is: 99638
Wren
Very simple approach as there's little need for speed here. <lang ecmascript>import "random" for Random import "/fmt" for Fmt
var rand = Random.new() var digits = List.filled(1000, 0) for (i in 0...999) digits[i] = rand.int(10) var number = digits.join() for (i in 99999...0) {
var quintet = Fmt.swrite("$05d", i) if (number.contains(quintet)) { Fmt.print("The largest number formed from 5 adjacent digits is: $,d", Num.fromString(quintet)) return }
}</lang>
- Output:
Sample output:
The largest number formed from 5 adjacent digits is: 99,850