社区讨论

关于这两份代码

学术版参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mk9lhotd
此快照首次捕获于
2026/01/11 18:32
上个月
此快照最后确认于
2026/01/15 20:15
上个月
查看原帖
r.t.

code#1

CPP
	for(int i=1;i<=n;i++){
        cin>>a[i];
        ans+=(a[i]/3);
        a[i]%=3;
    }
    for(int i=1;i<=n;i++){
        if(a[i]>0){
            if(a[i]>=2&&a[i+1]>=1&&i+1<=n){
                ans++;
                a[i]-=2,a[i+1]--;
            }
    下面的省略了

code#2

CPP
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        ans+=(a[i]/3);
        a[i]%=3;
        if(a[i]>0){
            if(a[i]>=2&&a[i+1]>=1&&i+1<=n){
                ans++;
                a[i]-=2,a[i+1]--;
            }
    下面的省略了
这两份代码不应当是等价的吗?为何最后 ans 的值不一样?
求指教

回复

5 条回复,欢迎继续交流。

正在加载回复...