xsl120505 @ 2018-11-28 18:44:46
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,x[100000],n1[100000],p=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>x[i]>>n1[i];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=x[i];j++)
{
cout<<"0";
if(p==n)
{
p=0;
cout<<endl;
p++;
}
}
for(int j=1;j<=n1[i];j++)
{
cout<<"1";
if(p==n)
{
p=0;
cout<<endl;
p++;
}
}
}
return 0;
}
by 斯蒂芬王 @ 2018-11-28 18:55:10
by woshishei @ 2018-11-28 18:55:28
你在程序运行中的p始终是0,所以不能判定出p==n
by ZERORUSH @ 2018-11-28 18:56:12
你确定你的p++放对地方了吗
by woshishei @ 2018-11-28 18:56:19
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,x[100000],n1[100000],p=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>x[i]>>n1[i];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=x[i];j++)
{
cout<<"0";
p++;//你忘了写
if(p==n)
{
p=0;
cout<<endl;
p++;
}
}
for(int j=1;j<=n1[i];j++)
{
cout<<"1";
p++;//你忘了写
if(p==n)
{
p=0;
cout<<endl;
p++;
}
}
}
return 0;
}
by woshishei @ 2018-11-28 18:57:04
把if里的p++去掉
by ZERORUSH @ 2018-11-28 19:19:05
@woshishei 大佬
by woshishei @ 2018-11-29 20:53:44
@寒鸦少年 我是最菜的蒟蒻QwQ
by xsl120505 @ 2018-11-30 21:54:55
@woshishei dalao:还是WA了两个点?
by woshishei @ 2018-11-30 23:06:33
@xsl120505
注意这里:
cin>>n;
for(int i=1;i<=n;i++)
cin>>x[i]>>n1[i];
题目中输入的个数未知,不一定是
cin>>n;
int sum=0,m1=0,m2=0,cnt=0;//sum表示输入数之和;m1表示x的个数;m2表示n1的个数;cnt表示目前正在输入第几个数
do{
int tmp;
cin>>tmp;
cnt++;
if(cnt%2!=0)x[++m1]=tmp;//x的个数加一
else n1[++m2]=tmp;//n1的个数加一
sum+=tmp;
}while(sum<n*n);//题目保证总和=n*n
因为m1只可能等于m2或m2+1,所以先循环到m2,如果m1>m2的话在加一次就行
for(int i=1;i<=m2;i++)
{
for(int j=1;j<=x[i];j++)
//do something for 0
for(int j=1;j<=n1[i];j++)
//do something for 1
}
if(m1>m2)
for(int i=1;i<=x[i];i++)
//do something for 0
by ZERORUSH @ 2018-12-01 19:24:13
@woshishei 怎么可能。。。还是我比较菜