第一题,直接是暴力模拟。
#include<iostream>
using namespace std;
int a[20002];
int s[20002];
int main()
{
int cnt=1;
for(int i=1;i<10001;i++)
{
for(int j=0;j<i;j++)
{
a[cnt++]=i;
s[cnt-1]=s[cnt-2]+a[cnt-1];
}
if(cnt>10000)break;
}
int k;
cin>>k;
cout<<s[k]<<endl;
return 0;
}
第二题,也是暴力,每次循环周围的,这里用int保存图直接累加地雷比较方便,而答案用char输出:
#include<iostream>
using namespace std;
int a[105][105];
char ans[105][105];
int main()
{
int n,m;
cin>>n>>m;
char temp;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>temp;
if(temp=='*')
a[i][j]=1