$O(n^{1/3})$
기울인 정사각형 모양으로 쌓으면 된다.
n층을 쌓기 위해선 n*(2*n*n+1)/3 개의 블럭이 필요
#include<cstdio> int f(long long x) { return x*(2 * x*x + 1) / 3; } int n, i; int main() { scanf("%d", &n); while (f(++i) <= n); printf("%d", i - 1); return 0; }
#include<cstdio> int f(long long x) { return x*(2 * x*x + 1) / 3; } int n, i; int main() { scanf("%d", &n); while (f(++i) <= n); printf("%d", i - 1); return 0; }
댓글 없음 :
댓글 쓰기