Заданы два натуральных числа
n и m. Вывести матрицу, состоящую из n строк и m столбцов,
заполненную натуральными числами от 1 до n
* m, как показано в примере.
Вход.
Два натуральных числа n и m (1 ≤ n, m ≤ 100).
Выход.
Вывести требуемую матрицу.
Пример входа |
Пример выхода |
2 3 |
1 2 3 4 5 6 |
массив
Задачу
можно решить при помощи двойного цикла. Выводим матрицу не лету.
Задачу
можно решить при помощи двумерного массива. Сгенерируем и занесем
матрицу в двумерный массив. Выведем элементы массива в требуемом порядке.
Реализация алгоритма
Читаем входные
данные.
scanf("%d %d", &n,
&m);
В переменной cnt перебираем
натуральные числа от 1 до n * m. Выводим требуемую матрицу.
cnt = 1;
for (i = 0; i < n; i++)
{
for (j = 0; j <
m; j++)
printf("%d
", cnt++);
printf("\n");
}
Реализация алгоритма – массив
#include <stdio.h>
int n, m, i, j, cnt;
int a[100][100];
int main(void)
{
scanf("%d
%d", &n, &m);
cnt = 1;
for (i = 0; i <
n; i++)
for (j = 0; j <
m; j++)
a[i][j] = cnt++;
for (i = 0; i <
n; i++)
{
for (j = 0; j <
m; j++)
printf("%d
", a[i][j]);
printf("\n");
}
return 0;
}
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new
Scanner(System.in);
int n = con.nextInt();
int m = con.nextInt();
int a[][] = new int[n+1][m+1];
int cnt = 1;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
a[i][j] = cnt++;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
System.out.print(a[i][j] + " ");
System.out.println();
}
con.close();
}
}
Python реализация
n, m = map(int,input().split())
cnt = 1
for i in range(n):
for j in range(m):
print(cnt, end = ' ')
cnt += 1
print()