Portál AbcLinuxu, 25. prosince 2025 19:50
1+1+1+1 1+1+2 1+3 2+1+1 3+1nemoze byt pouzita rekurzia....pomoze mi niekto???
Řešení dotazu:
000:1+1+1+1 001:1+1+2 010:1+2+1 011:1+3 100:2+1+1 101:2+2 110:3+1 111:4(0 napiš mezi čísla +,1 sečti čísla)
Neurčil jste jazyk, tak jsem si ho zvolil sám. :-)
\newcount\n
\newcount\m
\newcount\i
\def\rozloz#1#2#3{%
\n=#1
\m=#2
\ifnum\m<\n\else#3\the\n\par\fi
\i=\n
\advance\i by -1
\ifnum\i>\m \i=\m\fi
\ifnum\i>0
\loop
\bgroup
\advance\n by -\i
\edef\pfx{#3\the\i+}
\rozloz{\n}{\i}{\pfx}
\egroup
\advance\i by -1
\ifnum\i>0\repeat
\fi
}
\def\rozklad#1{\rozloz{#1}{#1}{}}
\rozklad{20}
\bye
10 DIM pole(1000) 20 INPUT "Zadej cislo z intervalu <1;1000> ",pole(0) 30 pole(0)=INT pole(0) 40 IF pole(0)<1 OR pole(0)>1000 THEN GOTO 240 50 pozice=1 60 FOR i=1 TO pole(0) 70 pole(pozice)=i:soucet=0 80 FOR j=1 TO pozice 90 soucet=soucet+pole(j) 100 NEXT j 110 IF soucet<pole(0) THEN GOTO 190 120 PRINT STR$(pole(1)); 130 FOR j=2 TO pozice 140 PRINT "+";STR$(pole(j)); 150 NEXT j 160 PRINT 170 pozice=pozice-1 180 GOTO 210 190 pozice=pozice+1 200 GOTO 60 210 i=pole(pozice) 220 NEXT i 230 EXIT 240 REM cislo mimo interval 250 PRINT "Sorry vole, ERROR!";CHR$(7) 260 EXITA asi by neškodilo upozornit že počet kombinací je 2^(n-1), takže pro n větší než pár desítek by se výsledku nemusel dožít
\hboxů).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.