3 条题解

  • 1
    @ 2024-09-08 12:27:29
    #include<iostream>
    using namespace std;
    char a[110][110];
    int q[8][2] = {{-1, -1}, {-1, 0}, {-1, 1}, {0, -1}, {0, 1}, {1, -1}, {1, 0}, {1, 1}};
    int main(){
        ios::sync_with_stdio(false);
        int m, n, cnt = 0;
        cin >> m >> n;
        for(int i = m+1; i >= 0; i--){
            for(int j = n+1; j >= 0; j--)a[i][j] = '?';
        }
        for(int i = 1; i <= m; i++){
            for(int j = 1; j <= n; j++)cin >> a[i][j];
        }
        for(int i = 1; i <= m; i++){
            for(int j = 1; j <= n; j++){
                if(a[i][j] == '?'){
                    for(int k = 0; k < 8; k++){
                        if(a[i+q[k][0]][j+q[k][1]] == '*')cnt++;
                    }
                    cout << cnt;
                    cnt = 0;
                }else cout << '*';
            }
            cout << endl;
        }
        return 0;
    }
    
  • 1
    @ 2023-05-27 20:21:48
    #include<bits/stdc++.h>
    using namespace std;
    int n,k,a[110][110],ans,t,m,l=1;
    char b[110][110];
    int main()
    {
        cin>>n>>m;
        for(int i=1;i<=n;i=i+1)
            for(int j=1;j<=m;j++)
                cin>>b[i][j];
             
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
            {
                if(b[i][j]!='*')
                {
                    if(b[i-1][j-1]=='*')a[i][j]++;
                    if(b[i][j-1]=='*')a[i][j]++;
                    if(b[i+1][j-1]=='*')a[i][j]++;
                    if(b[i+1][j]=='*')a[i][j]++;
                    if(b[i+1][j+1]=='*')a[i][j]++;
                    if(b[i][j+1]=='*')a[i][j]++;
                    if(b[i-1][j+1]=='*')a[i][j]++;
                    if(b[i-1][j]=='*')a[i][j]++;
                }
                else 
                    a[i][j]=-1;
            }
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
            {
                if(a[i][j]!=-1)
                    cout<<a[i][j];
                else 
                    cout<<"*";
            }
            cout<<endl;
        }
        return 0;
    }//尝试玩一下!!!耗费我很长时间的!!!
    
  • 0

    #include <iostream>
    using namespace std;

    char a[105][105];
    int b[105][105];
    int n,m;
    char temp;

    int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
    for(int j=1;j<=m;j++){
    temp=getchar();
    if((temp=='*')||(temp=='?')){
    a[i][j]=temp;
    }else{
    a[i][j]=getchar();
    }
    }

    }
    for(int i=1;i<=n;i++){
    for(int j=1;j<=n;j++){
    if(a[i][j]=='*'){
    for(int x=i-1;x<=i+1;x++){
    for(int y=j-1;y<=j+1;y++){
    b[x][y]++;
    }
    }
    }
    }
    }
    for(int i=1;i<=n;i++){
    for(int j=1;j<=m;j++){
    if(a[i][j]=='*'){
    cout<<'*';
    }else{
    cout<<b[i][j];
    }
    }
    cout<<endl;
    }
    return 0;
    }

  • 1

信息

ID
1482
难度
3
分类
模拟 点击显示
标签
递交数
79
已通过
38
通过率
48%
上传者