سلام
چجوری میشه این الگو رو چاپ کرد بدون ماتریس
مثلا اگه عدد n = 5 بود به این شکل میشه در تصویر زیر
تصویر
اگه عدد وارد شده 4 باشه بود به همون شکل از 1 میره تا 4 دوباره لاین بعد از 8 میره تا 5 به صورت صعودی و نزولی هس
-بدون ماتریس کسی میتونه.-
@Raymond
@saghari
@Farzadameri
@salar.mohammad2013
@mahdi.nazari
@mhyeganeh
@hesammousavi
کسی نمیتونه با استفاده از نگهداری و تغییر وضعیت و بدون استفاده از فضای ماتریسی این الگوریتم رو انجام بده.
فکر کنم اینطوری بشه البته پایتون خیلی حرفه ای نیستم
def createMatrix(rows):
matrix = []
for i in range(rows):
matrix.append([])
for j in range(rows):
if i % 2 == 0:
matrix[i].append((rows * i) + (j + 1))
else:
matrix[i].append((rows * (i + 1)) - j)
return matrix
createMatrix(5)
ممنون ولی با ماتریس رو انجام دادم بدون استفاده از ماتریس رو میخوام ببینم چجوری میشه الیته الگوریتمش رو تا حدودی نوشتم ولی تو نوشتن برنامه به مشکل خوردم
@saghari
منظورت رو از بدون ماتریس نفهمیدم
اگه منظورت اینه که خروجی که چاپ میشه لیست نباشه و خروجی مثلا اینطوری باشه
print('1 2 3 4')
print('8 7 6 5')
میتونی با حلقه فور انجامش بدی
اگه درست نگفتم منظورت رو واضح تر بگو چون درست متوجه نشدم
فکر کنم منظورت این باشه
def printNums(rows):
for i in range(rows):
for j in range(rows):
if i % 2 == 0:
print((rows * i) + (j + 1))
else:
print((rows * (i + 1)) - j)
printNums(4)
اره این اوکی هست مچکر ولی اگه بخواییم با استفاده از نگه داشتن و تغییر وضعیت این کارو کنیم چی میشه مثلا یه flag داشته باشیم و وضعیت رو تغییر بدیم و اعداد رو چاپ کنیم (بدون اشتغال کردن فضای ماتریسی از حافظه)اگه n = 3 باشه میشه n در n , اگه n = 5 باشه n د ر n و ... اگه منظورم واضح نیست تا الگوریتمش رو بگم
@saghari
مثلا کاربر عدد n رو 4 میده (n = 4) به این شکل 1 تا 4 بعد لاین بعد از 8 میره تا 5 در اصل به صورت رفت و برگشتی یه flag میزاریم سطر های فرد رو false و سطر های زوج true هستن و با تغییر وضعیت این کار رو انجام میدیم اگه flag = Falseبود به صورت صعودی حرکت میکنه True بود به صورت نزولی میاد به همین ترتیب
@saghari
مگه نگفتی بدون ماتریس خب اینی که گفتی ماتریسه که
توی همون پاسخ اولم من همین کارو کردم میاد چک میکنه اگه سطر فرد بود صعودی میره اگه زوج بود نزولی
مثلا اگه بهش 4 بدی اینو ریترن میکنه
[
[1, 2, 3, 4],
[8, 7, 6, 5],
[9, 10, 11, 12],
[16, 15, 14, 13]
]
درسته ولی من بدون ماتریس میخوام همون که فرستادی با حلقه فور نوشتی ولی با استفاده از نگه داشتن یه وضعیت تو پاسخ قبلیم قشنگ توضیح دادم داخل عکس هم واضح هست با استفاده از اون وضعیت از راست به چپ یا ازچپ به راست حرکت میکنه مثلا یه متغیر به اسم Flag بگیری.
کسی نمیتونه با استفاده از نگهداری و تغییر وضعیت و بدون استفاده از فضای ماتریسی این الگوریتم رو انجام بده.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟