40分求助!(为什么公布成绩时是30分,洛谷上测却是40分???)

P7071 [CSP-J2020] 优秀的拆分

@[lcyxds](/user/124314) 这个怎么感觉也是错的啊。。。是不是应该改成 ```cpp for(int i=pow(2,k);i>=2;i/=2) if(!y[k--]) printf("%d ",i); ``` --- ```cpp y[i] ``` 存的不是余数吗
by nuo0930 @ 2020-11-19 19:18:04


@[哪吒三太子](/user/335627) 建议自己调
by lcyxds @ 2020-11-19 19:21:01


哦,我错了
by nuo0930 @ 2020-11-19 19:21:33


y存的是二进制
by nuo0930 @ 2020-11-19 19:22:47


建议在没有开动态数组时,把所有变量定义在外面如: ```cpp #include"stdio.h" #include"math.h" int n,y[30],k=0;//这样定义会初始化为0 int main(void){ scanf("%d",&n); if(n%2==1) printf("-1"); else{ while(n!=0){ y[k++]=n%2; n/=2; } k-- for(int i=k;i>=2;i/=2) if(y[k--]) printf("%d ",i); } return 0; } ```
by lihaochen_harold @ 2020-11-19 19:23:41


@[lihaochen_harold](/user/284855) 哎,为什么你们不跑一遍自己的代码再发出来啊 连编译都过不去啊 加上分号也过不了样例啊
by lcyxds @ 2020-11-19 19:36:12


@[lcyxds](/user/124314) 哦,改成 ```cpp #include"stdio.h" #include"math.h" int main(void){ int n,y[30],k=0; scanf("%d",&n); if(n%2==1) printf("-1"); else{ while(n!=0){ y[k++]=n%2; n/=2; } k--; for(int i=pow(2,k);i>=2;i/=2) if(y[k--]) printf("%d ",i); } return 0; } ``` 就好了。
by justinjia @ 2020-11-20 18:43:03


@[justinjia](/user/373226) 对 建议每次做这种简单题的时候推一遍算法,拍几个数据
by lcyxds @ 2020-11-20 19:40:23


@[lcyxds](/user/124314) >拍几个数据 ???
by justinjia @ 2020-11-20 21:53:16


@[justinjia](/user/373226) 就是自己弄几个数据运行一下
by lcyxds @ 2020-11-20 22:54:09


上一页 | 下一页