代码王者 2022-03-10 20:57 采纳率: 100%
浏览 37
已结题

7 的个数 C++解法,简单点!

【题目描述】
小明上次斗地主输了个精光,原因是因为他总是缺少某个关键编号的牌,导致他最后的牌非常的零散。于是他最后索性每次都抢地主,希望自己能够补上自己漏掉的关键牌,但是不幸地是,他都没能如愿。于是他郁闷的在一个人玩围棋,他在棋盘上无意识地随机放黑白棋子,放着放着他突然发现,在一片棋子中出现了一个由白色棋子组成的 7 的数字。此时小明突然想起,他上次输的一个很大原因就是总是没有 7 。于是他决定在这个棋盘里寻找一下 7 出现的个数。

在小明的棋盘中,放满了黑白颜色的棋子,我们可以假定棋盘是一个 n∗m 的矩形的形状。在棋盘中,小明认为 7 是由横的 x 个白色棋子加竖的 x+1 个棋子构成,例如下方就是 x=2 时候构成的一个 7 。

1 1
0 1
0 1

现在小明想要知道,棋盘中一共可以找到多少个白色棋子组成的 7 。

【输入格式】
第一行输入两个数 n 和 m 分别表示宽度和高度。(1≤n,m≤1000)

接下来输入一个 n∗m 的矩形,只由 0 和 1 构成,0 表示黑色棋子,1 表示白色棋子。

【输出格式】
输出一个数表示一共可以找到的 7 的个数。

【样例输入】
4 3
1 1 1
0 1 1
0 1 1
0 0 1

【样例输出】
4
本题具体解法,简单点!!
c++

#include <bits/stdc++.h>
using namespace std;
int main(){
    return 0;
}

  • 写回答

3条回答 默认 最新

  • 关注

    思路是定义一个y行x列的二维数组,遍历数组找出值为1(白子)的元素,再看这个元素右侧连续的元素是否也是白子,并且这个白子下方也是连续有与横向白子数加1的白子。有则计数加1。

    #include <bits/stdc++.h>
    using namespace std;
    int main(){
        int x,y,count=0,i,j,k,l,f;
        cin >> y >> x;
        int a[y][x];
        for (int i = 0; i < y; i++)
            for (int j = 0; j < x; j++)
                cin >> a[i][j];
    
        for (i = 0; i < y-2; i++)
        {
            for (j = 0; j < x-1; j++)
            {
                if (a[i][j]==1)
                {
                    for (k = j+1; k < x; k++)
                    {
                        if (a[i][k]==0)
                            break;
                        f = k - j + 1;
                        for (l = i+1; l < y && f > 0; l++)
                        {
                            if (a[l][k]==0)
                                break;
                            f--;
                        }
                        if (f==0)
                            count++;
                    }
                }
            }
        }
        cout << count << endl;
        return 0;
    }
    

    img

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月20日
  • 已采纳回答 3月12日
  • 创建了问题 3月10日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号