题解 CF1202D 【Print a 1337-string...】

皎月半洒花

2019-08-09 23:10:36

Solution

智商题。 其实大家都想到了`13..37`的形式,但是我当时就一心想着要质因数分解分解成$\frac{k(k-1)}{2}$的形式…… 所以其实我们把剩下的`7`放到开头的`133`后面就好了,即`13377..73333..37`。 ```cpp #include <cmath> #include <cstdio> #include <iostream> using namespace std ; int N, T, L1, L2 ; int main(){ cin >> T ; while (T --){ cin >> N ; int p = sqrt(2*N); for (int i = p ; i <= 2*N ; ++ i){ if (i * (i - 1) > 2 * N) break ; L1 = i * (i - 1) / 2, L2 = N - L1, L1 = i ; } printf("133") ; for (int i = 1 ; i <= L2 ; ++ i) putchar('7') ; for (int i = 1 ; i <= L1 - 2 ; ++ i) putchar('3') ; printf("7\n") ; } } ```