作业介绍
赛车
#include<bits/stdc++.h>
using namespace std;
int n,x,y;
int step = 1;
int step1 = 1;
char s[1005];
int a[105][105];
int main(){
cin >> n >> x >> y;
a[x][y] = 1;
cin >> s;
int l1 = strlen(s);
for(int i=0; i<l1; i++){
step1 = step;
//上
if(s[i]=='1'){
while(step1){
if(x-1 < 1) break;
a[--x][y] = 1;
step1--;
}
if(step1 && x==1) break;
}
//下
else if(s[i]=='2'){
while(step1){
if(x+1>n) break;
a[++x][y] = 1;
step1--;
}
if(step1 && x==n) break;
}
//左
else if(s[i]=='3'){
while(step1){
if(y-1<1) break;
a[x][--y] = 1;
step1--;
}
if(step1 && y==1) break;
}
//右
else if(s[i]=='4'){
while(step1){
if(y+1>n) break;
a[x][++y] = 1;
step1--;
}
if(step1 && y==n) break;
}
//步数减少
if(s[i]=='A'){
step--;
if(step<1) step = 1;
}
//步数增加
if(s[i]=='B') step++;
}
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++) cout << a[i][j] << " ";
cout << endl;
}
return 0;
}
转圈圈
#include<iostream>
#include<cstdio>
using namespace std;
int dir[4][2]={-1,0,0,-1,1,0,0,1};
int mat[505][505];
int main()
{
int n , m;
cin >> n >> m;
int sx,sy;
cin >> sx >> sy;
int k , d;
cin >> k >> d;
mat[sx][sy] = 1;
int step=k;
while(step>0)
{
int bu=0;
while(step!=0)
{
int xx = sx + dir[d][0];
int yy = sy + dir[d][1];
if(xx<1||xx>n||yy<1||yy>m)
{
break;
}
sx =xx;
sy =yy;
mat[sx][sy] = 1;
bu++;
step--;
}
d = (d+1) % 4 ;
step = bu-1;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cout << mat[i][j];
}
cout << endl;
}
return 0;
}
- 状态
- 已结束
- 题目
- 6
- 开始时间
- 2024-5-30 0:00
- 截止时间
- 2024-7-31 23:59
- 可延期
- 24 小时