lantiansky @ 2023-08-29 00:43:18
零基础准大一,还只会写shit码:
#include<bits/stdc++.h>
using namespace std;
int an(int a,int b){
if(a%2==0){
while(b>0){cout << '0';b--;}}
else{
while(b>0){cout << '1';b--;}}}
//a为偶输入0,反之1
int main(){
int n,a=0,b,m=0,s=0;
//a为总输入数;b为此次输入数;
//m即上面的a,判断输入0或1;s为行已输入数
cin >> n;
while(a<n*n){
cin>>b;
if(s+b > n){an(m,n-s),cout<<endl;an(m,b-n+s);s=b-n+s;}
else{an(m,b);s+=b;}m++;a+=b;}
}
//若s+b输入后超过边长,先输入再转行后输入
//否则直接输入
再提一个小问题 main的第一个for里的a<n*n改为<=全错?
还劳烦dalao们轻责了
by SZX__HAPPY @ 2023-08-29 08:27:09
你的an函数里好像没有判断换行吧?
by SZX__HAPPY @ 2023-08-29 08:44:16
还有,要是改为a<=nn的话,在最后输入之后,a停留在nn的位置上,就会导致多出了一个输入。
by SZX__HAPPY @ 2023-08-29 08:44:42
@lantiansky
by SZX__HAPPY @ 2023-08-29 08:46:18
@lantiansky
by lantiansky @ 2023-08-29 11:15:27
@szx20100828
抱歉dalao,才登录。我这就试试