YuanZhizheng @ 2019-12-10 13:20:29
这是RE代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[100005];
int main()
{
int n;
cin>>n;
int i;
int num=0,sum=0;
for(i=0;;i++)
{
scanf("%1d",&a[i]);
num++;
sum+=a[i];
if(sum==n*n)break;
}
int flag=0;
for(i=0;i<num;i++)
{
while(a[i]--)
{
if(i%2==0)printf("0");
else printf("1");
flag++;
if(flag==n)
{
printf("\n");
flag=0;
}
}
}
return 0;
}
这个是改用for以后
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[100005];
int main()
{
int n;
scanf("%d",&n);
int i;
int num=0,sum=0;
int N=n*n;
for(i=0;;i++)
{
num++;
scanf("%d",&a[i]);
sum+=a[i];
if(sum==N)break;
}
int flag=0,j;
for(i=0;i<num;i++)
{
int mid=a[i];
for(j=0;j<mid;j++)
{
if(i%2==0)printf("0");
else if(i%2==1) printf("1");
flag++;
if(flag==n)
{
printf("\n");
flag=0;
}
}
}
return 0;
}
为什么for的这个ac了,while就会RE
by YuanZhizheng @ 2019-12-10 13:29:02
问题不在while貌似,我把cin改成scanf就ac了,为什么cin用不了呢
by C2022zhangyixiang @ 2019-12-10 14:08:59
比如这道题
#include<cstdio>
int main()
{
int M,N,X,used;
scanf("%d %d %d",&M,&N,&X);
while (X>0)
{
used=(M%N==0)? M/N:M/N+1;
if(used>X)
{
break;
}
X-=used;
N+=M/N;
}
printf("%d",N);
return 0;
}