中等 · 多行输入

矩阵对角线求和

第一道输入跨多行的题:先读 n,再读 n 行,把行下标等于列下标的格子加起来。

题目

输入:第一行是 n(1 ≤ n ≤ 20)。随后 n 行,每行 n 个以空格分隔的整数。

输出:主对角线之和(行下标 = 列下标,从 0 数)。

样例:

输入输出
2
1 2
3 4
5

你的解答

Program.cs — 你的解答
"用我的输入试跑"的自定义输入

判题完全在你的浏览器里对隐藏测试运行。代码随打随存(本地)。Ctrl+Enter 判题。

卡住了?提示

提示 1 —— 根本不用存整个矩阵

一次读一行,只留下第 i 个元素(行自己的下标)。这一行剩下的立刻扔掉——你永远用不到整个格子。

提示 2 —— 读取循环

for (int i = 0; i < n; i++) { string[] row = Console.ReadLine().Split(' '); sum += int.Parse(row[i]); }——整道题就这一句。

解答(先自己试!)
string[] parts = Console.ReadLine().Split(' ');
int n = int.Parse(parts[0]);
int sum = 0;
for (int i = 0; i < n; i++)
{
    string[] row = Console.ReadLine().Split(' ');
    sum += int.Parse(row[i]);
}
Console.WriteLine(sum);

每次 ReadLine 读一行,是网格类题的标准姿势——流一次给你一行,你就一次处理一行。下一题:单词计数。