题目链接

小红的矩阵

题目描述

小红拿到了一个 的矩阵,请你回答该矩阵中有多少个元素的个位数是 9。

输入:

  • 第一行输入两个正整数 ,代表矩阵的行数和列数
  • 接下来的 行,每行输入 个正整数,代表矩阵的元素

输出:

  • 输出一个整数,代表矩阵中个位数是 9 的元素数量

解题思路

这是一个简单的模拟问题,可以通过以下步骤解决:

  1. 关键发现:

    • 只需要判断每个数字的个位数
    • 个位数可以通过对10取余得到
    • 需要遍历矩阵的每个元素
  2. 解题策略:

    • 读入矩阵的每个元素
    • 判断每个元素对10取余是否为9
    • 统计满足条件的元素个数
  3. 具体步骤:

    • 读入矩阵大小 n 和 m
    • 遍历每个元素
    • 判断个位数是否为9
    • 累计计数

代码

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    
    int count = 0;
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            int x;
            cin >> x;
            if(x % 10 == 9) {
                count++;
            }
        }
    }
    
    cout << count << endl;
    return 0;
}
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        
        int count = 0;
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < m; j++) {
                int x = sc.nextInt();
                if(x % 10 == 9) {
                    count++;
                }
            }
        }
        
        System.out.println(count);
    }
}
n, m = map(int, input().split())

count = 0
for i in range(n):
    row = list(map(int, input().split()))
    for x in row:
        if x % 10 == 9:
            count += 1

print(count)

算法及复杂度

  • 算法:模拟
  • 时间复杂度: - 需要遍历矩阵的每个元素
  • 空间复杂度: - 只需要常数空间存储变量

注意:

  1. 使用取余运算(%)可以方便地获取个位数
  2. 不需要存储整个矩阵,可以边读边处理
  3. 注意输入输出格式的处理