#include "stdafx.h"
#include <string>
#include <iostream>
#include <algorithm>
int doubleNumbers(int array[], int len) {
int result = 0
, idxPos = 0
;
for (int i = 1; i < len; i++) {
if (0 == array[i]) { // no input for itself
continue;
}
idxPos = i << 1;
if (idxPos >= len) {
continue;
}
if (1 == array[idxPos]) {
result++;
}
}
return result;
}
unsigned int count_digits(const std::string& s) {
return std::count_if(s.begin(), s.end(),
[](unsigned char c){ return '-' == c || isdigit(c); }
);
}
void readIntArray(int array[], const int len) {
std::string input;
int idx = 0
, number = 0
;
memset(array, 0x00, len * sizeof(int));
while (0 <= number) {
std::cin >> input;
if (count_digits(input) != input.length()) {
input.clear();
continue;
}
number = std::stoi(input);
if (number >= len) {
std::cout << "the number must be less than:" << len << std::endl;
} else if (0 < number) {
array[number] = 1;
}
input.clear();
}
}
int _tmain(int argc, _TCHAR* argv[]) {
int lenArray = 100
, *pIntArray = NULL
, doubleNums = 0
;
pIntArray = new int[lenArray];
readIntArray(pIntArray, lenArray);
doubleNums = doubleNumbers(pIntArray, lenArray);
delete[] pIntArray;
pIntArray = NULL;
std::cout << "doubleNums=" << doubleNums << std::endl;
std::cin >> lenArray;
}