Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int fatorial(int v[], int n)
- {
- int i;
- v[0] = 1;
- for(i = 1; i <= n && i * v[i - 1] <= n; i++)
- v[i] = i * v[i - 1];
- return i;
- }
- int gula(int v[], int tam, int n)
- {
- int s = 0;
- bool achou = false;
- s = v[tam - 1];
- int ans = 1;
- while(!achou)
- {
- if(s == n)
- achou = true;
- else if(n - s < v[tam / 2])
- {
- int i;
- for(i = 1; i < tam / 2 && s + v[i] <= n; i++);
- s += v[i - 1];
- ans++;
- }
- else
- {
- int i;
- for(i = tam / 2; i < tam && s + v[i] <= n; i++);
- s += v[i - 1];
- ans++;
- }
- }
- return ans;
- }
- int main()
- {
- int n;
- cin >> n;
- int v[n];
- int tam = fatorial(v, n);
- int ans = gula(v, tam, n);
- cout << ans << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement