ﺑﻪ ﻧﺎم ﺧﺪا
اﻣﺘﺤﺎن ﻣﻴﺎن ﺗﺮم ﭘﺎﺳﻜﺎل ،ﮔﺮوه ، 4ﺣﺴﻴﻨﻲ ﻓﺮح آﺑﺎدي86/9/3 ،
-1ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻳﻚ ﻋﺪد ﺻﺤﻴﺢ ﻣﺜﺒﺖ nرا از ورودي ﮔﺮﻓﺘﻪ ،ﺗﻤﺎم زﻳﺮﻣﺠﻮﻋﻪﻫﺎي ﻣﺠﻤﻮﻋﺔ } {1,2,3,…,nرا ﭼﺎپ ﻛﻨـﺪ .ﺑـﺮاي
ﻧﻤﺎﻳﺶ ﻣﺠﻤﻮﻋﻪ Øﻣﻲﺗﻮاﻧﻴﺪ ) 0ﺻﻔﺮ( ﭼﺎپ ﻛﻨﻴﺪ 15) .اﻣﺘﻴﺎز( راﻫﻨﻤﺎﻳﻲ :اﺑﺘﺪا ﻣﺠﻤﻮﻋﻪي ﺗﻬﻲ را در ﻧﻈﺮ ﻣﻲﮔﻴﺮﻳﻢ .ﺳﭙﺲ در ﻫﺮ ﻣﺮﺣﻠـﻪ ،ﻛﻮﭼـﻚﺗـﺮﻳﻦ iاي
را ﭘﻴﺪا ﻣﻲﻛﻨﻴﻢ ﻛﻪ ﻣﺘﻌﻠﻖ ﺑﻪ ﻣﺠﻤﻮﻋﻪ ﻧﺒﺎﺷﺪ .اﻳﻦ iرا ﺑﻪ ﻣﺠﻤﻮﻋﻪ اﺿﺎﻓﻪ ﻣﻲﻛﻨﻴﻢ ،و ﻫﻤﻪي ﻋﺪدﻫﺎي ﻛﻮﭼﻚﺗﺮ از iرا از ﻣﺠﻤﻮﻋﻪ ﺣـﺬف ﻣـﻲﻛﻨـﻴﻢ .اﮔـﺮ ﺑـﻪ ﻫﻤـﻴﻦ ﺻـﻮرت اداﻣـﻪ
دﻫﻴﻢ ،در ﻫﺮ ﻣﺮﺣﻠﻪ زﻳﺮﻣﺠﻤﻮﻋﻪاي ﺟﺪﻳﺪ ﺑﻪ دﺳﺖ ﻣﻲآورﻳﻢ....
-2ﺧﺮوﺟﻲ )ﺗﻤﺎم ﻣﻘﺎدﻳﺮ ﻣﺘﻐﻴﺮ آراﻳﻪي (aﺑﺮﻧﺎﻣﻪ زﻳﺮ ﭘﺲ از اﺟﺮا ﭼﻪ ﻣﻲﺑﺎﺷﺪ؟ )ﻣﻘﺎدﻳﺮ ﻫﺮ ﺳﻠﻮل آراﻳﻪ را ﺑﻪ ﺗﻔﻜﻴﻚ ﻫﺮ ﻣﺮﺣﻠﻪ اﺟﺮاي ﺣﻠﻘﻪ
ﺑﻴﺮوﻧﻲ )ﺣﻠﻘﻪ (iﻣﺎﻧﻨﺪ ﺟﺪول زﻳﺮ ﺑﻨﻮﻳﺴﻴﺪ 20) (.اﻣﺘﻴﺎز(
]A[6
?
]A[5
?
]A[4
?
]A[3
?
]A[2
?
]A[1
?
i
1
..
Const
; Size = 6
var
;a: array[1..Size] of Integer
;i, j, tmp: Integer
begin
;a[1] := -23
;a[2] := 45
;a[3] := -12
;a[4] := 56
;a[5] := -34
;a[6] := 10
for i := 1 to Size-1 do
for j := 1 to Size-i do
if a[j] > a[j + 1] then
begin
;]tmp := a[j
;]a[j] := a[j + 1
;a[j + 1] := tmp
;end
end.
-3ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻋﺪد ﻣﺜﺒﺖ و ﺻﺤﻴﺢ Nرا از ورودي ﮔﺮﻓﺘﻪ و ﺣﺎﺻﻞ ﺳﺮي زﻳﺮ را در ﺧﺮوﺟﻲ ﭼﺎپ ﻛﻨﺪ 20) .اﻣﺘﻴﺎز(
1
1
1
1
−
+
− ... ±
2
2
3
2
x x + 2x
x + 2 x + 3x
x + 2 x + 3 x 3 + ... + Nx N
-4ﻳﻚ آراﻳﻪ را Bitanicﻣﻲﮔﻮﻳﻴﻢ ﻫﺮﮔﺎه از ﻋﻨﺼﺮ اول ﺗﺎ ﻋﻨﺼﺮ -iم ﺻﻌﻮدي و ﺳﭙﺲ از ﻋﻨﺼﺮ -iم ﺗﺎ ﻋﻨﺼﺮ ﭘﺎﻳﺎﻧﻲ ﻧﺰوﻟﻲ ﺑﺎﺷﺪ .ﻣﺜﻼً آراﻳﻪ ﺑﺎ
1 3 6 9 12 5 3 0 -4 -8 -20
ﻋﻨﺎﺻﺮ زﻳﺮ Bitanicﻣﻲﺑﺎﺷﺪ:
ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ دو آراﻳﻪ ) Bitanicاز اﻋﺪاد ﺻﺤﻴﺢ( از ورودي ﺑﮕﻴﺮد و ﻳﻚ آراﻳﻪ Bitanicﺑﻪ ﻋﻨﻮان ﺧﺮوﺟﻲ ﭼﺎپ ﻛﻨﺪ) .در ﻫﻨﮕﺎم
درﻳﺎﻓﺖ ورودي ،ﻋﺪد -32768ﺑﻪ ﻋﻨﻮان ﭘﺎﻳﺎن ورودي آراﻳﻪ ﻣﺤﺴﻮب ﻣﻲﺷﻮد 30) (.اﻣﺘﻴﺎز( ﻣﺜﺎل:
Input
1 3 6 9 14 5 3 0 -4 -8 -20 -32768
5 6 8 12 9 1 -24 -32768
Output
1 3 5 6 6 8 9 12 14 9 5 3 1 0 -4 -8 -20 -24
١
-5ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ اﺑﺘﺪا ﻋﺪد ﻣﺜﺒﺖ و ﺻﺤﻴﺢ Nرا از ورودي ﮔﺮﻓﺘﻪ و ﭘﺲ از آن 2Nﻋﺪد ﺻﺤﻴﺢ دﻳﮕﺮ از ورودي درﻳﺎﻓﺖ ﻛﺮده و
ﻣﺸﺨﺺ ﻛﻨﺪ ﻛﻪ آﻳﺎ ﻣﻲﺗﻮان اﻋﺪاد وارد ﺷﺪه را ﺑﻪ دو ﮔﺮوه Nﺗﺎﻳﻲ ﺑﻪﮔﻮﻧﻪاي ﺗﻘﺴﻴﻢ ﻛﺮد ﻛﻪ ﻣﺠﻤﻮع اﻋﺪاد اﻳﻦ دو ﮔﺮوه ﺑﺎ ﻫﻢ ﻳﻜﺴﺎن
ﺑﺎﺷﻨﺪ ﻳﺎ ﺧﻴﺮ 25) .اﻣﺘﻴﺎز( ﻣﺜﺎل:
Input
Input
3
4
10 6 5 2 3 4
80 1000 34 4 53 10 1000 -1
Output
Impossible
Output
10+2+3 = 6+5+4
ﻣﺴﺌﻠﻪ اﺿﺎﻓﻪ:
ﻣﻲﺧﻮاﻫﻴﻢ ﻋﺪد nرا ﺑﻪ ﺗﻌﺪادي ﻋﺪد اﻓﺮاز ﻛﻨﻴﻢ )ﻣﺠﻤﻮع اﻳﻦ اﻋﺪاد ﺑﺮاﺑﺮ nﺑﺎﺷﺪ( ﺑﻪ ﻃﻮريﻛﻪ ﺣﺎﺻﻞﺿﺮب اﻳﻦ اﻋﺪاد ﻣﺎﻛﺰﻳﻤﻢ ﺷـﻮد.
ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﺪ ﻛﻪ ﺑﺎ درﻳﺎﻓﺖ ﻋﺪد ، nﻣﺎﻛﺰﻳﻤﻢ ﺣﺎﺻﻞﺿﺮب اﻓﺮازﻫﺎي آن را ﭼﺎپ ﻛﻨﺪ 20) .اﻣﺘﻴﺎز( ﻣﺜﺎل :اﻳﻦ ﻣﺎﻛﺰﻳﻤﻢ ﺑـﺮاي ، n = 6
ﺑﺮاﺑﺮ 9و ﺑﺮاي n = 7ﺑﺮاﺑﺮ 12ﺧﻮاﻫﺪ ﺑﻮد )دارﻳﻢ 6 = 3 + 3و .(7 = 4 + 3
ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ.
ﺣﺴﻴﻨﻲ ﻓﺮح آﺑﺎدي
٢
© Copyright 2026 Paperzz