راکت
حل شده

چاپ ماتریس مربعی

10 پاسخ

سلام
چجوری میشه این الگو رو چاپ کرد بدون ماتریس
مثلا اگه عدد n = 5 بود به این شکل میشه در تصویر زیر
تصویر

اگه عدد وارد شده 4 باشه بود به همون شکل از 1 میره تا 4 دوباره لاین بعد از 8 میره تا 5 به صورت صعودی و نزولی هس
-بدون ماتریس کسی میتونه.-
@Raymond
@saghari
@Farzadameri
@salar.mohammad2013
@mahdi.nazari
@mhyeganeh
@hesammousavi

ثبت پرسش جدید

پاسخ‌ها

10
علیرضا
علیرضا
@alireza.gh147
بهترین پاسخ

کسی نمیتونه با استفاده از نگهداری و تغییر وضعیت و بدون استفاده از فضای ماتریسی این الگوریتم رو انجام بده.

محمد حسین
محمد حسین
@saghari

تخصص: mevn stack

فکر کنم اینطوری بشه البته پایتون خیلی حرفه ای نیستم

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)
علیرضا
علیرضا
@alireza.gh147

ممنون ولی با ماتریس رو انجام دادم بدون استفاده از ماتریس رو میخوام ببینم چجوری میشه الیته الگوریتمش رو تا حدودی نوشتم ولی تو نوشتن برنامه به مشکل خوردم
 تصویر
@saghari

شاید پاسخ شما همین‌جا باشد

محمد حسین
محمد حسین
@saghari

تخصص: mevn stack

منظورت رو از بدون ماتریس نفهمیدم
اگه منظورت اینه که خروجی که چاپ میشه لیست نباشه و خروجی مثلا اینطوری باشه

print('1 2 3 4')
print('8 7 6 5')

میتونی با حلقه فور انجامش بدی
اگه درست نگفتم منظورت رو واضح تر بگو چون درست متوجه نشدم

محمد حسین
محمد حسین
@saghari

تخصص: mevn stack

فکر کنم منظورت این باشه

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)
علیرضا
علیرضا
@alireza.gh147

اره این اوکی هست مچکر ولی اگه بخواییم با استفاده از نگه داشتن و تغییر وضعیت این کارو کنیم چی میشه مثلا یه flag داشته باشیم و وضعیت رو تغییر بدیم و اعداد رو چاپ کنیم (بدون اشتغال کردن فضای ماتریسی از حافظه)اگه n = 3 باشه میشه n در n , اگه n = 5 باشه n د ر n و ... اگه منظورم واضح نیست تا الگوریتمش رو بگم
@saghari

محمد حسین
محمد حسین
@saghari

تخصص: mevn stack

بازم متوجه نشدم الگوریتمیش رو بگو

علیرضا
علیرضا
@alireza.gh147

 تصویر
d
مثلا کاربر عدد n رو 4 میده (n = 4) به این شکل 1 تا 4 بعد لاین بعد از 8 میره تا 5 در اصل به صورت رفت و برگشتی یه flag میزاریم سطر های فرد رو false و سطر های زوج true هستن و با تغییر وضعیت این کار رو انجام میدیم اگه flag = Falseبود به صورت صعودی حرکت میکنه True بود به صورت نزولی میاد به همین ترتیب
@saghari

محمد حسین
محمد حسین
@saghari

تخصص: mevn stack

مگه نگفتی بدون ماتریس خب اینی که گفتی ماتریسه که
توی همون پاسخ اولم من همین کارو کردم میاد چک میکنه اگه سطر فرد بود صعودی میره اگه زوج بود نزولی
مثلا اگه بهش 4 بدی اینو ریترن میکنه

[
    [1, 2, 3, 4],
    [8, 7, 6, 5],
    [9, 10, 11, 12],
    [16, 15, 14, 13]
]
علیرضا
علیرضا
@alireza.gh147

درسته ولی من بدون ماتریس میخوام همون که فرستادی با حلقه فور نوشتی ولی با استفاده از نگه داشتن یه وضعیت تو پاسخ قبلیم قشنگ توضیح دادم داخل عکس هم واضح هست با استفاده از اون وضعیت از راست به چپ یا ازچپ به راست حرکت میکنه مثلا یه متغیر به اسم Flag بگیری.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام