Menu
Coddy logo textTech

סיכומים של שורות

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 18 מתוך 63.

השאר/י תוצאה אחת לכל שורה על ידי איפוס המצטבר של השורה בתוך הלולאה החיצונית. גם סיכום של שורה ריקה מועיל: סכום של אפס משמר את ההתאמה בין שורות הקלט למיקומים בפלט.

בתוך main:

val rows = listOf(listOf(2, 3), emptyList(), listOf(4))
val sums = mutableListOf<Int>()
for (row in rows) sums.add(row.sum())
println(sums)

יש סכום אחד לכל שורה, כולל אפס עבור השורה הריקה.

סיכום שורה שומר על מיקום פלט אחד לכל שורת קלט.

challenge icon

אתגר

בינוני

השלימו את rowTotals עם הפרמטרים grid: List<List<Int>>. החזירו את הסכום של כל שורה לפי סדר הקלט. סכום של שורה ריקה הוא אפס.

אלא אם צוין לעיל טווח מחמיר יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, והארגומנטים השלמים והערכים השלמים באוספים הם בין ‎-1000 ל־1000. הטקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.

החזירו ערך מסוג List<Int>. השאירו את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו איבריה, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על פורמט מספר האיברים והאיברים עבור כל שורה. הפונקציה main שסופקה מדפיסה את ערך ההחזרה ואחריו תו שורה חדשה אחד. רשימות משתמשות בפורמט הסוגריים המרובעים הסטנדרטי של Kotlin; אל תדפיסו תוויות נוספות.

נסו בעצמכם

fun rowTotals(grid: List<List<Int>>): List<Int> {
    // כתבו כאן את הפתרון שלכם.
    return emptyList()
}
fun main() {
    val gridCount = readln().toInt()
    val grid = mutableListOf<List<Int>>()
    for (i0 in 0 until gridCount) {
        val gridItemCount = readln().toInt()
        val gridItem = mutableListOf<Int>()
        for (i1 in 0 until gridItemCount) {
            val gridItemItem = readln().toInt()
            gridItem.add(gridItemItem)
        }
        grid.add(gridItem)
    }
    println(rowTotals(grid))
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: Kotlin אונליין