一、题目珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?最近老师出了一些测验题,请你帮忙求出答案。二、思路定义数组,利用数组获取输入信息把输入的数组当前该数组的下标,保存一个标记位(防止输入过多循环导致超时)遍历arr数组,取出两个相加比较是否跟第三个数字相等用flag标记满足条件的下标统计有几个数字是另外两个数字的和三、细节注意单独设置一个数组用于存下标,防止加入过多循环超时循环的运行:先运行内层,达到限制条件后再运行外层四、示例代码#include<stdio.h>intmain(){intn;scanf("%d",&n);intarr[n];intnumArr[10000]={0};for(inti=0;i<n;i++){scanf("%d",&arr[i]);numArr[arr[i]]=i+1;}intflag[10000]={0};for(inti=0;i<n;i++){for(intj=i+1;j<n;j++){intsum=arr[i]+arr[j];if(numArr[sum]){flag[numArr[sum]-1]=1;}}}intcount=0;for(inti=0;i<n;i++){if(flag[i]){count++;}}printf("%d",count);return0;}
一、题目珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?最近老师出了一些测验题,请你帮忙求出答案。二、思路定义数组,利用数组获取输入信息把输入的数组当前该数组的下标,保存一个标记位(防止输入过多循环导致超时)遍历arr数组,取出两个相加比较是否跟第三个数字相等用flag标记满足条件的下标统计有几个数字是另外两个数字的和三、细节注意单独设置一个数组用于存下标,防止加入过多循环超时循环的运行:先运行内层,达到限制条件后再运行外层四、示例代码#include<stdio.h>intmain(){intn;scanf("%d",&n);intarr[n];intnumArr[10000]={0};for(inti=0;i<n;i++){scanf("%d",&arr[i]);numArr[arr[i]]=i+1;}intflag[10000]={0};for(inti=0;i<n;i++){for(intj=i+1;j<n;j++){intsum=arr[i]+arr[j];if(numArr[sum]){flag[numArr[sum]-1]=1;}}}intcount=0;for(inti=0;i<n;i++){if(flag[i]){count++;}}printf("%d",count);return0;}