我实现的C++版本代码 #include<iostream> #include<cmath> #include<string> using namespace std; string getnext(int size, int k) { string res(size,'0'); for (int i = size - 1; i >= 0; i--) { if (k % 2 == 0)k = k / 2; else { k = k / 2; res[i] = '1'; } } for (int i = 0; i < size; ++i) { if (res[i] == '0')res[i] = '4'; else res[i] = '7'; } return res; } int main() { int k; while (cin >> k) { int size = 1; int i = 1; while (1) { if (k > pow(2, i)) { k = k - pow(2, i); i++; size++; } else { break; } } cout << getnext(size,k-1) << endl; } cin.get(); return 0; }
点赞 评论

相关推荐

02-15 22:29
门头沟学院 Java
点赞 评论 收藏
分享
02-05 08:18
四川大学 Java
在思考的熊熊很讨厌吃香菜:不是,我门头沟学院呢?这都没排上?
点赞 评论 收藏
分享
牛客网
牛客企业服务