1、扫雷
#include <bits/stdc++.h>
using namespace std;
int n,m;
const int N=110;
int g[N][N];
int dx[8]={-1,-1,-1,0,1,1,1,0};
int dy[8]={-1,0,1,1,1,0,-1,-1};
int dfs(int x,int y){int ans=0;for(int i=0;i<8;i++){int a=x+dx[i],b=y+dy[i];if(a<0||a>n-1||b<0||b>m-1||g[a][b]==0)continue;else if(g[a][b]==9)ans++;} return ans;
}
int main(){cin>>n>>m;for(int i=0;i<n;i++){for(int j=0;j<m;j++){cin>>g[i][j];if(g[i][j]==1){g[i][j]=9;}}}for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(!g[i][j]){g[i][j]=dfs(i,j);}}}for(int i=0;i<n;i++){for(int j=0;j<m;j++){cout<<g[i][j]<<" ";}cout<<endl;}return 0;
}
2、九进制转十进制
#include <bits/stdc++.h>
using namespace std;
int main()
{string s = "2022";int ans = 0;for(int i=0;i<s.length();i++){ans = ans*9+s[i]-'0';}cout << ans << endl;return 0;
}
3、顺子日期
#include <iostream>
using namespace std;
//2022年二月28天
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(int q[]){for(int i=3;i<=5;i++)//顺子头最低从3开始,5结束 if(q[i]==(q[i+1]-1)&&q[i+1]==(q[i+2]-1)){ return true;}return false;
}
int main()
{ int q[8]={2,0,2,2};int res=0;for(int i=1;i<=12;i++){q[4]=i/10%10;//得月份第一位 q[5]=i%10;//第二位 for(int j=1;j<=day[i];j++){q[6]=j/10%10;q[7]=j%10;if(check(q)){res++;}}}cout<<res;return 0;
}
4、刷题统计
#include <iostream>
using namespace std;
typedef long long ll;//数据范围很大用longlong
ll a,b,n,add,day;
int main()
{cin>>a>>b>>n;int tem=5*a+2*b;//一个周期刷的数量 ll week=n/tem;//需要得周数 ll last=n%tem;//剩余的题目数 day+=week*7;//先加上 int x=1;while(last>0)//全部减完即为答案 {if(x%7==6||x%7==0)last-=b;//周末 else last-=a;//周一到五 day++;x++;}cout<<day<<endl;return 0;
}
5、修剪灌木
#include <iostream>
using namespace std;
int main(){int n;cin>>n;for(int i=1;i<=n;i++){cout<<max(i-1,n-i)*2<<endl;}return 0;
}