C语言新手30分

B2092 开关灯

@[wuxiangtianbei](/user/894033) 第一,数组开小了; 第二,如果灯的标号是当前人的标号,灯就做相反操作。 ```c if(i%r==0)a[i]=!a[i]; ```
by Ggsddu_zzy @ 2022-12-08 21:08:22


**我给你改了一下(我的风格可能跟你不一样**) $AC$代码: ```c #include<stdio.h> int main() { int a[5005]={0},n,r,j,i; scanf("%d",&n); for(i=1;i<=n;i++){ a[i]=0; } for(r=1;r<=n;++r){ for(i=r;i<=n;i+=r){//i要+=r因为每次要按R1......Rn的倍数开关灯 if(i%r==0)a[i]=!a[i];//取反优化一下 } } for(j=1;j<=n;j++){ if(a[j]==1) printf("%d ",j); } } ``` **我当时没做出来我也想了好一会 ** ~~哈哈哈~~
by WangRui_26_ @ 2023-01-05 14:58:44


|