关注
#include <iostream>
#include <string>
#include <cmath>
#include <vector>
using namespace std;
string getKthNum(long long k) {
if (k == 1) {
return "4";
} else if (k == 2) {
return "7";
}
int numPos = ceil(log(k + 2.0) / log(2.0) - 1);
long long prevNum = pow(2.0, numPos) - 2;
long long nowNum = k - prevNum;
long long halfNum = pow(2.0, numPos - 1);
string postStr = getKthNum((nowNum > halfNum ? nowNum %
halfNum : nowNum) + halfNum - 2);
string prevStr = (nowNum > halfNum) ? "7" :
"4";
return prevStr + postStr;
}
int main()
{
int n;
cin >> n;
vector<string> retVec;
while (n--) {
long long k;
cin >> k;
string ret = getKthNum(k);
retVec.push_back(ret);
}
for (int i = 0; i < retVec.size(); i++) {
cout << retVec[i] << endl;
}
return 0;
}
从第k个数倒推有多少位,在用递归解
查看原帖
点赞 2
相关推荐

点赞 评论 收藏
分享
03-27 17:33
门头沟学院 Java 点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的求职总结 #
26784次浏览 464人参与
# 你的房租占工资的比例是多少? #
22395次浏览 250人参与
# 毕业季,给职场新人一些建议 #
23201次浏览 409人参与
# 计算机专业还有必要去大厂卷吗 #
20314次浏览 103人参与
# 我的实习日记 #
2438946次浏览 25413人参与
# 辞职之后最想做的一件事 #
10964次浏览 161人参与
# 选offer应该考虑哪些因素 #
19130次浏览 286人参与
# 薪资一样,你会选择去大厂还是小公司 #
16573次浏览 100人参与
# 晒一晒你收到的礼盒 #
62433次浏览 373人参与
# 为了秋招你都做了哪些准备? #
10976次浏览 165人参与
# 你怀疑过自己的专业选择吗? #
17565次浏览 201人参与
# Offer比较,求稳定还是求发展 #
49433次浏览 237人参与
# 你想吐槽公司的哪些规定 #
17553次浏览 68人参与
# 第一份工作应该只看薪资吗 #
138866次浏览 1460人参与
# 你想留在一线还是回老家? #
38147次浏览 449人参与
# 我的工作日记 #
97802次浏览 1268人参与
# 你小时候最想从事什么职业 #
91558次浏览 1703人参与
# 你见过最离谱的招聘要求是什么? #
188413次浏览 1401人参与
# 秋招想进国企该如何准备 #
58158次浏览 375人参与
# 工作中的卑微时刻 #
9101次浏览 55人参与