Dzień dobry !
Mam do napisania taki algorytm jak poniżej tylko mam z nim problem bo limit pamięci wynosi 64MB ,a mój program go przekracza. Więc mam pytanie gdzie tu najwięcej pamięci jest zabierane i jak to ograniczyć. Z góry dziękuje.
#include <iostream>
#include <string>
#include <cstdlib>
#include <vector>
using namespace std;
unsigned int ccsum(string s)
{
unsigned int sum = 0;
for(int i=0; i<s.length(); i++)
{
sum += atoi(new char(s[i]));
}
return sum;
}
unsigned int ccg(unsigned int n)
{
return n + (ccsum(to_string(n)) * ccsum(to_string(n)));
}
int main()
{
std::ios_base::sync_with_stdio(false);
int x;
cin >> x;
long long n[x];
for(int i=0; i<x; i++)
{
cin >> n[i];
}
for(int j=0; j<x; j++)
{
unsigned int nnx = 1;
unsigned int nn = n[j];
while(true)
{
if(nnx > nn)
{
cout << "NIE" << endl;
break;
}
if(nnx == nn)
{
cout << "TAK" << endl;
break;
}
nnx = ccg(nnx);
}
}
return 0;
}