版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzc2608/article/details/81178856
#include <iostream>
#include <vector>
using namespace std;
vector<int> getKNum(int value, int k)
{
vector<int> res(32);
int index = 0;
while(value != 0)
{
res[index++] = value % k;
value = value / k;
}
return res;
}
int genumfromK(vector<int>& arr, int k)
{
int res = 0;
for(int i = arr.size(); i != -1 ; --i)
res = res * k + arr[i];
return res;
}
void setExclu(vector<int>& arr, int value, int k)
{
vector<int> cur = getKNum(value, k);
for(int i = 0; i != arr.size(); ++i)
arr[i] = (arr[i] + cur[i]) % k;
}
int onceNum(vector<int>& arr, int k)
{
vector<int> eo(32);
for(int i = 0; i != arr.size(); ++i)
{
setExclu(eo, arr[i], k);
// cout << genumfromK(eo, k) << endl;;
}
return genumfromK(eo, k);
}
int main()
{
int a[] = {1, 1, 2, 3, 4, 4, 3, 5, 2};
vector<int> ivec(a, a + 9);
cout << onceNum(ivec, 2) << endl;
}