只有#1#3过了?

P1319 压缩技术

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,才登录。我这就试试


|