10pts,help

P2141 [NOIP2014 普及组] 珠心算测验

@[jfy2204](/user/877497) 第二个循环错了
by cflsfzh @ 2023-06-02 21:45:06


@[jfy2204](/user/877497) 另外,需要特判跳出两重循环(或者相等不处理)
by cflsfzh @ 2023-06-02 21:50:03


没听懂,能讲讲代码吗
by jfy2204 @ 2023-06-02 21:54:07


@[jfy2204](/user/877497) 因为可能有不止一种情况两数相加等于另一个数 如:1+4=5,2+3=5 造成影响:会多加 解决:只要判定成立,跳出两重循环,判定下一个数
by cflsfzh @ 2023-06-02 21:57:12


代码,已测AC ``` #include<bits/stdc++.h> using namespace std; int n,a[106],ans,i,j,k,t; int main() { cin>>n; for(i=0;i<n;i++) cin>>a[i]; for(i=0;i<n;i++){ t=0; for(j=0;j<n;j++){ for(k=j+1;k<n;k++) if(a[i]==a[j]+a[k]){ ans++; t=1; break; } if(t==1) break; } } cout<<ans; return 0; } ```
by cflsfzh @ 2023-06-02 21:58:20


@[jfy2204](/user/877497)
by cflsfzh @ 2023-06-02 22:02:20


请问第17行是什么意思呀 ``` if(t==1) break; ```
by jfy2204 @ 2023-06-02 22:03:45


@[jfy2204](/user/877497) 如果已经通过了判断,t的值会变成1,并且跳到j层循环,之后就会执行这个判断,t的值如果为1,就会跳出到x层循环,执行下一个数。
by cflsfzh @ 2023-06-02 22:12:40


x改为i层循环,打错了
by cflsfzh @ 2023-06-02 22:13:32


@[jfy2204](/user/877497)
by cflsfzh @ 2023-06-02 22:13:48


| 下一页