LeNotFound @ 2022-04-06 17:46:34
思路是先读入N
然后getline
读入剩下的压缩码
每两位pushback
进zip
向量(去除空格)
然后定义bool
类型state
控制输出0
还是1
第一层循环压缩码个数
第二层循环各个压缩码将char
型字符push
进ans
向量
第二层结束后state
变成!state
,0
状态变为1
状态,1
状态变为0
状态
然后单独一个循环控制输出
从0
到ans.size()
如果(i-1)%7==0
就换行
Q:样例过了,1,3点AC 其他WA
by LeNotFound @ 2022-04-06 17:47:36
代码
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
int x=0,f=1;
char ch=getchar();
while(!isdigit(ch))
{
if(ch=='-')
{
f=-1;
}
ch=getchar();
}
while(isdigit(ch))
{
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
typedef long long ll;
ll N;
vector<ll> zip;
int main()
{
N=read();
string zipcode;
getline(cin,zipcode);
vector<char> ans;
for (ll i = 0,j = 0; i <= zipcode.length()/2; i++,j+=2)
{
zip.push_back((ll)zipcode[j]-48);
}
bool state=0;
for (ll i = 0; i < zip.size();i++)
{
for (ll k = 0; k < zip.at(i); k++)
{
if(state==0)
{
ans.push_back('0');
}
else if(state==1)
{
ans.push_back('1');
}
}
// (state==0)?state=1:state=0;
state=!state;
}
for (ll i = 0; i < ans.size(); i++)
{
cout<<ans.at(i);
if((i+1)%N==0) cout<<endl;
}
return 0;
}
by Green123 @ 2022-04-13 19:17:42
zip.push_back((ll)zipcode[j]-48); 数字未必是一位数
by billhasbill @ 2022-04-13 19:19:16
zip.push_back((ll)zipcode[j]-48); 这行代码错了,长度有可能是两位数。 记得给我的评论点赞 抖音搜索Minecraft_697 记得关注我 谢谢? 我说的是真话
by billhasbill @ 2022-04-13 19:20:07
上边那个你说错了
by billhasbill @ 2022-04-13 19:20:31
@Green123 就是你
by Green123 @ 2022-04-13 19:22:11
你在叫我做什么,我先说的,一个意思,还打广告,你配吗
by Green123 @ 2022-11-05 12:44:12
@billhasbill