小红的矩阵
[题目链接](https://www.nowcoder.com/practice/df690022406d4e8d8594890f3e109cde)
思路
简单模拟题。读入一个 的矩阵,统计所有元素中个位数为
的个数。
判断一个整数 的个位是否为
,只需检查
x % 10 == 9 即可。
遍历矩阵中每一个元素,对满足条件的计数,最后输出计数结果。
代码
[sol-C++]
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, m;
scanf("%d%d", &n, &m);
int cnt = 0;
for(int i = 0; i < n * m; i++){
int x;
scanf("%d", &x);
if(x % 10 == 9) cnt++;
}
printf("%d\n", cnt);
return 0;
}
[sol-Java]
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(), m = sc.nextInt();
int cnt = 0;
for (int i = 0; i < n * m; i++) {
int x = sc.nextInt();
if (x % 10 == 9) cnt++;
}
System.out.println(cnt);
}
}
[sol-Python3]
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
cnt = 0
for _ in range(n):
row = list(map(int, input().split()))
for x in row:
if x % 10 == 9:
cnt += 1
print(cnt)
[sol-JavaScript]
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin });
const lines = [];
rl.on('line', line => lines.push(line.trim()));
rl.on('close', () => {
const [n, m] = lines[0].split(' ').map(Number);
let cnt = 0;
for (let i = 1; i <= n; i++) {
const nums = lines[i].split(' ').map(Number);
for (const x of nums) {
if (x % 10 === 9) cnt++;
}
}
console.log(cnt);
});
复杂度分析
- 时间复杂度:
,遍历矩阵中每个元素一次。
- 空间复杂度:
,每次只需存储一行的数据。

京公网安备 11010502036488号