Largest five adjacent number: Difference between revisions

Added Easylang
(Added Easylang)
 
(6 intermediate revisions by 6 users not shown)
Line 104:
(example)
<pre>99994</pre>
 
=={{header|Arturo}}==
 
<syntaxhighlight lang="arturo">N: join to [:string] map 1..100 'x -> random 1000000000 9999999999
 
i: 0
maxNum: 0
minNum: ∞
while [i < (size N)-5][
num: to :integer join @[N\[i] N\[i+1] N\[i+2] N\[i+3] N\[i+4]]
if num > maxNum -> maxNum: num
if num < minNum -> minNum: num
i: i + 1
]
 
print "Our random 1000-digit number is:"
print N
 
print ""
 
print ["Max 5-adjacent number found:" maxNum]
print ["Min 5-adjacent number found:" (repeat "0" 5-(size to :string minNum)) ++ (to :string minNum)]</syntaxhighlight>
 
{{out}}
 
<pre>Our random 1000-digit number is:
2540956677308157418624519953263471599696918276171651168484519407031160813613006352660058588944602704848634276542837184618726044674117357036813240557325769932073351534364289297094415941273117151277729576200542643185699525405079189015204192029912043004161916366921458912887890652627268028071729897387395041640352395354106991129061548748712499227024213135531365974620993813773921850969630855401781344832397898392812417729744785629765286216304456806870691502938136795922685099816652448188701308354551593078486609811394420601431484916913833634669083737749230355341380266781803894385432741405633278873213701238310761908151961510643290964548205746238459266137202173265468217401777681775761126374654289733873900330799576500024068191362342162163615972164105625935627483920193464168192083262176697432155066174175594837721476581087940310642712981291006889657297350894628612724944063786324456854104801432247483498384207351647946918119868105898645178074174003550762101547842674605061792172905254724197215648686667
 
Max 5-adjacent number found: 99816
Min 5-adjacent number found: 00024</pre>
 
=={{header|AutoHotkey}}==
Line 170 ⟶ 200:
smallest 00099 in positions 697-701
</pre>
 
=={{header|BASIC}}==
==={{header|BASIC256}}===
{{trans|FreeBASIC}}
<syntaxhighlight lang="vb">dim number(1000)
highest = 0
lowest = 100000
for i = 0 to 999
number[i] = int(rand*10)
if i >= 4 then
tmp = number[i] + 10*number[i-1] + 100*number[i-2] + 1000*number[i-3] + 10000*number[i-4]
if tmp < lowest then lowest = tmp
if tmp > highest then highest = tmp
end if
next i
print highest, lowest</syntaxhighlight>
 
==={{header|Chipmunk Basic}}===
{{works with|Chipmunk Basic|3.6.4}}
{{trans|FreeBASIC}}
<syntaxhighlight lang="qbasic">100 randomize timer
110 dim number(999)
120 highest = 0
130 lowest = 100000
140 for i = 0 to 999
150 number(i) = int(rnd(10))
160 if i >= 4 then
170 tmp = number(i)+10*number(i-1)+100*number(i-2)+1000*number(i-3)+10000*number(i-4)
180 if tmp < lowest then lowest = tmp
190 if tmp > highest then highest = tmp
200 endif
210 next i
220 print highest,lowest
230 end</syntaxhighlight>
 
==={{header|Gambas}}===
{{trans|FreeBASIC}}
<syntaxhighlight lang="vbnet">Public number[1000] As Byte
 
Public Sub Main()
Randomize
Dim tmp As Integer, highest As Integer = 0, lowest As Integer = 100000
For i As Integer = 0 To 999
number[i] = Int(Rnd(10))
If i >= 4 Then
tmp = number[i] + 10 * number[i - 1] + 100 * number[i - 2] + 1000 * number[i - 3] + 10000 * number[i - 4]
If tmp < lowest Then lowest = tmp
If tmp > highest Then highest = tmp
End If
Next
Print highest, lowest
End</syntaxhighlight>
 
==={{header|PureBasic}}===
{{trans|FreeBASIC}}
<syntaxhighlight lang="vb">OpenConsole()
Dim number.i(999)
highest.i = 0
lowest.i = 100000
For i.i = 0 To 999
number(i) = Random(10)
If i >= 4:
tmp = number(i) + 10*number(i-1) + 100*number(i-2) + 1000*number(i-3) + 10000*number(i-4)
If tmp < lowest: lowest = tmp: EndIf
If tmp > highest: highest = tmp: EndIf
EndIf
Next i
PrintN(Str(highest) + #TAB$ + Str(lowest))</syntaxhighlight>
 
==={{header|QBasic}}===
{{works with|QBasic|1.1}}
{{works with|QuickBasic|4.5}}
{{trans|FreeBASIC}}
<syntaxhighlight lang="qbasic">RANDOMIZE TIMER
DIM number(0 TO 999)
highest = 0
lowest = 100000
FOR i = 0 TO 999
number(i) = INT(RND * 10)
IF i >= 4 THEN
tmp = number(i) + 10 * number(i - 1) + 100 * number(i - 2) + 1000 * number(i - 3) + 10000 * number(i - 4)
IF tmp < lowest THEN lowest = tmp
IF tmp > highest THEN highest = tmp
END IF
NEXT i
PRINT highest, lowest
END</syntaxhighlight>
 
==={{header|True BASIC}}===
{{trans|QBasic}}
<syntaxhighlight lang="qbasic">RANDOMIZE
DIM number(0 TO 999)
LET highest = 0
LET lowest = 100000
FOR i = 0 TO 999
LET number(i) = INT(RND*10)
IF i >= 4 THEN
LET tmp = number(i)+10*number(i-1)+100*number(i-2)+1000*number(i-3)+10000*number(i-4)
IF tmp < lowest THEN LET lowest = tmp
IF tmp > highest THEN LET highest = tmp
END IF
NEXT i
PRINT highest, lowest
END</syntaxhighlight>
 
==={{header|Yabasic}}===
{{trans|FreeBASIC}}
<syntaxhighlight lang="vb">dim number(999)
highest = 0
lowest = 100000
for i = 0 to 999
number(i) = int(ran(10))
if i >= 4 then
tmp = number(i) + 10*number(i-1) + 100*number(i-2) + 1000*number(i-3) + 10000*number(i-4)
if tmp < lowest lowest = tmp
if tmp > highest highest = tmp
fi
next i
print highest, lowest</syntaxhighlight>
 
=={{header|BQN}}==
Line 260 ⟶ 411:
<pre>Smallest: 144
Largest: 99951</pre>
 
=={{header|Delphi}}==
{{works with|Delphi|6.0}}
{{libheader|SysUtils,StdCtrls}}
 
 
<syntaxhighlight lang="Delphi">
function Get5DigitNumber(S: string; Off: integer): integer;
{Extract 5 digit number from string at Off}
var I: integer;
var NS: string;
begin
NS:=Copy(S,Off,5);
Result:=StrToIntDef(NS,-1);
end;
 
 
 
function BreakupString(S: string): string;
{Breakup thousand digit number for easy display}
var I: integer;
begin
for I:=1 to Length(S) do
begin
Result:=Result+S[I];
if (I mod 55)=0 then Result:=Result+#$0D#$0A;
end;
end;
 
procedure FiveDigitNumber(Memo: TMemo);
{Find the largest and small 5 digit sequence}
{in 1000 digit number}
var S: string;
var N,I: integer;
var Largest,Smallest: integer;
begin
Smallest:=High(Integer);
Largest:=0;
for I:=1 to 1000 do
S:=S+Char(Random(10)+$30);
for I:=1 to Length(S)-5 do
begin
N:=Get5DigitNumber(S,I);
if N>Largest then Largest:=N;
if N<Smallest then Smallest:=N;
end;
Memo.Lines.Add(BreakupString(S));
Memo.Lines.Add('Largest: '+IntToStr(Largest));;
Memo.Lines.Add('Smallest: '+IntToStr(Smallest));;
end;
 
 
</syntaxhighlight>
{{out}}
<pre>
0082263134040802937368731342824182794880115050767752659
6926207485596307977119758620628125911215421677000178364
7438810001625238336693427757455861441056098692774612931
9301856160395349334087194184285169534216966507128749101
0333045468523586265833674268791722749102838792380205401
7335212073765802860114410575280403628540910018912794058
9569778977033072890894634763659190635686944921467068416
0978402580498879216810854417805724457730620420683349740
8203884243646784563247619038458645194136841413688117232
0960606571886477139587251334596793042923055521495533796
5592094928040937883628134090110628164451939278452734493
5741344340195488542852682604882967292438604245256357719
4755578568409079269700382959730067457921191314413220282
3502307407547002586284406642530858066838890257743184196
5040611036453640792847940715686736822030381083124941163
3588177613294220880152655471721880286144478485085399563
1095924640071825166992021998152653370680394470682198029
3879102724160697653653330275506532525946257246355415772
4978409544
Largest: 99815
Smallest: 16
 
</pre>
 
 
=={{header|F_Sharp|F#}}==
Line 270 ⟶ 500:
<pre>
Largest 5 adjacent digits are 99914
</pre>
 
=={{header|EasyLang}}==
<syntaxhighlight>
for i to 1000
n$ &= random 10 - 1
.
min = 99999
for i = 1 to 995
n = number substr n$ i 5
min = lower min n
max = higher max n
.
print min & " " & max
</syntaxhighlight>
{{out}}
<pre>
21 99768
</pre>
 
Line 577 ⟶ 825:
Smallest 5-adjacent number found 35
</pre>
 
=={{header|Quackery}}==
 
<syntaxhighlight lang="Quackery"> 9 random 1+
999 times [ 10 * 10 random + ]
dup 10 995 ** / swap
say "1000 digit number"
cr cr
dup echo
cr cr
[] swap 1000 times
[ 10 /mod
rot join swap ]
drop dup
0 0 rot witheach
[ swap 10 *
100000 mod +
tuck max swap ]
drop
say "largest 5 adjacent digits " echo
cr cr
5 split nip
dip dup witheach
[ swap 10 *
100000 mod +
tuck min swap ]
drop
say "smallest 5 adjacent digits "
number$
char 0 over size 5 swap - of
swap join echo$</syntaxhighlight>
 
{{out}}
 
<pre>1000 digit number
 
6840907174710710253578773992410923828010161316527489025709598588564725782830158923520744533291356763925463645174705745049218864529135157750600471363289558510223445011025163844199130052941524405130793922050669143532883592357897096269697903780509770222546659289832999639637730759831717125055857319129937934353617386529810429642261048827016148476352187592939822910964334104828550764225596939965675519243696921514153715258715961987394884393797714002723369560598384723111928648279375269590756880538160907807290640466592734345970439851284217252141914792365031610947925633607292897379320456985054219371373707477609843617810620097343420379245258762479642377134776965386535533204636182773979582543243782455626021964121509778973939346873293400502531060571761381532229278485105166678017234489439222625767334040651185482277484204647473910364297105035077787620562600454016296114868335345408156093266755340971022669397814048919735693462065796634326535292979494128432997646841467835174156471055078228524511787150409
 
largest 5 adjacent digits 99963
 
smallest 5 adjacent digits 00272</pre>
 
=={{header|Raku}}==
Line 632 ⟶ 921:
The smallest number is:
00118
</pre>
 
=={{header|RPL}}==
RPL can not handle 1000-digit numbers, so we use a 1000-digit string.
≪ ""
1 1000 '''START''' RAND 9 * 0 RND →STR + '''NEXT'''
{ -99999 0 }
1 3 PICK SIZE 4 - '''FOR''' j
OVER j DUP 4 + SUB
STR→ NEG LASTARG 2 →LIST MAX
'''NEXT''' ABS
≫ '<span style="color:blue>TASK</span>' STO
{{out}}
<pre>
2: "46725324552811522…
1: { 198 99886 }
</pre>
 
Line 696 ⟶ 1,001:
{{libheader|Wren-fmt}}
Very simple approach as there's little need for speed here.
<syntaxhighlight lang="ecmascriptwren">import "random" for Random
import "./fmt" for Fmt
 
var rand = Random.new()
2,046

edits