먼저 작업을 읽어 보시기 바랍니다 : http://codeabbey.com/index/task_view/neumanns-random-generator노이만의 랜덤 생성기
내가 반복 횟수를 추적해야합니다,하지만 나는 아주 이상한 결과를 얻을 수 있습니다. 작업 후 예제에서 우리는 0001과 4100의 숫자를 가지고 있으며 2와 4 번의 반복 작업 후에 루프를 수행해야합니다. 하지만 내 결과는 1, 4 또는 내가 카운터의 위치를 변경하는 경우 2 또는 5하지만 결코 2, 여기 4. 내 코드입니다 :
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
int value;
int counter;
int result;
int setvalue = 1; // use to exit the loop if setvalue == 0;
cin >> n;
vector<int> new_results(0); // use to store all the results from iterations
vector<int> results_vec(0); // use to store the number of iterations for each number
for (int i = 0; i < n ; i++)
{
cin >> value;
while(setvalue == 1)
{
value = value*value;
value = (value % 1000000)/100;
if(find(results_vec.begin(), results_vec.end(), value) == results_vec.end())
{
results_vec.push_back(value);
}
else
{
counter = results_vec.size();
new_results.push_back(counter);
setvalue = 0;
}
}
results_vec.clear();
}
for (int i = 0; i < new_results.size() ; i++)
{
cout << new_results[i] << " ";
}
}
0001과 4100으로 시작하면 중간 번호는 무엇입니까? – tgmath
0001의 경우 나는 (0, 0) 4100의 경우 (8100, 6100, 2100, 4100) – Vallerious
'while' 루프를 시작하기 전에 초기 값을'results_vec'에 넣으면 안되나요? – pjs