問題描述:在黑板上從左到右有n個正整數,先從左向右依次計下累加和,再從右向左依次計下累加和,找出這所有累加和中共有多少個是相同。例如:有7個數,從左到右依次為:3,6,2,1,4,5,2,從左向右的累加和為:3,9,11,12,16,21,23;而從右向左的的累加和為:2,7,11,12,14,20,23;有3個值相同,它們分別是:11、12與23。輸入格式:第一行為正整數n(<100),第二行為n個正整數ai(<200)。輸出格式:一個整數表示相同的值個數。輸入樣例輸出樣例73 6 2 1 4 5 23
1 回答

翻過高山走不出你
TA貢獻1875條經驗 獲得超3個贊
#include <iostream> #include <algorithm> #include <vector> #include <malloc.h> #include <stdio.h> using namespace std; vector < int > num; int *pUnion=( int *) malloc ( sizeof ( int ) *200000); int i; int count_number; int main() { scanf ( "%d" ,&i); for ( int j=0; j<i; j++) { int number; scanf ( "%d" ,&number); num.push_back(number); *(pUnion+j)=number; } sort(pUnion,pUnion+i-1); sort(num.begin(),num.end()); int *pEnd=unique(pUnion,pUnion+i-1); int jian_ge=pEnd-pUnion; while (pUnion!=pEnd) { count_number=count(num.begin(),num.end(),*pUnion); printf ( "%d %d\n" ,*pUnion,count_number); pUnion++; } return 0; } |
添加回答
舉報
0/150
提交
取消