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

· · 题解

题目思路

直接暴力枚举即可。但需要注意一些问题。

明确了这些问题后,我们就可以写出代码了。具体思路见代码。

代码

注:本代码仅供参考。

#include<iostream>
#include<cstdio>
using namespace std;
int n,a[105],ans;
bool f;
int main(){
    //输入 
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]); 
    }
    //枚举 
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            for(int k=1;k<=n;k++){
                f=false;
                if(i==j||j==k||i==k){ //如果位置相同,则跳过 
                    continue;
                }
                if(a[j]+a[k]==a[i]){ //如果可行,答案个数 +1,随后直接退出循环 
                    ans++;
                    f=true;
                    break;
                }
            }
            if(f==true){
                break;
            }
        }
    }
    printf("%d\n",ans); //输出答案 
    return 0;
}

后记

更多内容,请移步至 \color{red}\texttt{ryf2011}