zoukankan      html  css  js  c++  java
  • 【枚举】珠心算测验[c++]

    题目描述

    珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。 某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和? 最近老师出了一些测验题,请你帮忙求出答案。

    输入
    输入共两行,第一行包含一个整数n,表示测试题中给出的正整数个数。 第二行有n个正整数,每两个正整数之间用一个空格隔开,表示测试题中给出的正整数。3<=n<=100,给出的正整数大小不超过10000

    输出
    输出共一行,包含一个整数,表示测验题答案。

    样例输入
    4
    1 2 3 4

    样例输出
    2

    提示
    由1+2=3,1+3=4,故满足测试要求的答案为2。注意,加数和被加数必须是集合中的两个不同的数。

    分析

    从题目给的数据看出,任意两个数相加的结果不会超过20000;最大组合数C(100,2)=4950。
    可以开一个20000的bool型数组,用来记录两数相加能否得到某一结果,相当于打表。

    代码[c++]
    #include <cstdlib>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    
    int main() {
        int n;
        scanf("%d",&n);
        int a[105];
        bool cnt[20005]= {0};
        for(int i=0; i<n; i++)
            scanf("%d",a+i);
        for(int i=0; i<n-1; i++) {
            for(int j=i+1; j<n; j++) {
                cnt[a[i]+a[j]]=true;
            }
        }
        int sum=0;
        for(int i=0; i<n; i++) {
            if(cnt[a[i]])sum++;
        }
        printf("%d
    ",sum);
        return 0;
    }
  • 相关阅读:
    sql2slack alash3al 开源的又个轻量级工具
    pgspider fetchq 扩展docker镜像
    godns 集成coredns 的demo
    godns 简单dnsmasq 的dns 替换方案
    aviary.sh 一个基于bash的分布式配置管理工具
    使用coredns 的template plugin实现一个xip 服务
    nginx 代理 coredns dns 服务
    基于nginx proxy dns server
    几个不错的geodns server
    spring boot rest api 最好添加servlet.context-path
  • 原文地址:https://www.cnblogs.com/NeilThang/p/9356632.html
Copyright © 2011-2022 走看看