题解
【入门】地雷数量求解
3 条题解
-
0
#include<bits/stdc++.h>//#493.地雷数量求解 /* 问题1、地雷经过加密,如何判断是否有地雷? 答:各个数位之和是一个奇数,代表有地雷 问题2、如何统计地雷数量? 答:使用计数器(一定要初始化为0),循环嵌套扫描整张地图 地图是一个二维数组组成的方阵,如果有遇到各个数位之和为奇数,则计数器+1。 问题3、各个数位要求和,我们要如何进行拆位? 答:题中说明了标记数均<=9999所以可以直接拆位存放在g、s、b、q几个变量中 使用while()进行拆位也可以 */ int a[105][105]; using namespace std; int main(){ //基本输入要很熟练 int n, m, cnt = 0;//cnt计数器 cin >> n >> m; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cin >> a[i][j]; int g = a[i][j] % 10;//拆分个位 int s = a[i][j] / 10 % 10;//拆分十位 int b = a[i][j] / 100 % 10;//拆分百位 int q = a[i][j] / 1000 % 10;//拆分千位 if ((g + s + b + q) % 2 == 1) cnt++;//和是奇数,计数器+1。 } } cout << cnt; return 0; } -
0
#include <iostream> using namespace std; int main(){ int a[200][200],i,j,n,m,c = 0,g,s,b,q,w; cin>>n>>m; for(i = 0;i < n;i++){ for(j = 0;j < m;j++){ cin>>a[i][j]; g = a[i][j] % 10; s = a[i][j] / 10 % 10; b = a[i][j] / 100 % 10; q = a[i][j] / 1000; if((g + s + b + q) % 2 == 1){ c++; } } } cout<<c<<endl; }
- 1