#include <cstdio> #include <string> #include <iostream> int T, n; std::string ans; inline void dfs(int n) { if (n == 1) ans = "1"; else if (n == 2) ans = "1+1"; else if (n == 3) ans = "1+1+1"; else { dfs(n / 2); ans = "(" + ans + ")*(1+1)"; if (n & 1) ans = ans + "+1"; } } int main() { std::cin >> T; while (T--) { ans.clear(); std::cin >> n; dfs(n); std::cout << ans << std::endl; } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include <cstdio> #include <string> #include <iostream> int T, n; std::string ans; inline void dfs(int n) { if (n == 1) ans = "1"; else if (n == 2) ans = "1+1"; else if (n == 3) ans = "1+1+1"; else { dfs(n / 2); ans = "(" + ans + ")*(1+1)"; if (n & 1) ans = ans + "+1"; } } int main() { std::cin >> T; while (T--) { ans.clear(); std::cin >> n; dfs(n); std::cout << ans << std::endl; } return 0; } |