关注
#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
相关推荐
牛客热帖
更多
正在热议
更多
# 找工作能把i人逼成什么样 #
4776次浏览 50人参与
# 面试尴尬现场 #
198564次浏览 752人参与
# 百融云创求职进展汇总 #
22241次浏览 145人参与
# 0经验如何找实习? #
14937次浏览 293人参与
# 最难的技术面是哪家公司? #
60053次浏览 937人参与
# 你今年做了几份实习? #
4385次浏览 66人参与
# 腾讯音乐求职进展汇总 #
142980次浏览 1032人参与
# 字节出了豆包coding模型 #
4539次浏览 49人参与
# 你找工作经历过哪些骗局? #
5525次浏览 99人参与
# 实习心态崩了 #
93797次浏览 487人参与
# 你开始找寒假实习了吗? #
8427次浏览 134人参与
# 实习越久越好,还是多多益善? #
11522次浏览 97人参与
# 25年找工作是什么难度? #
8057次浏览 89人参与
# 一上班就想____,这正常吗? #
2799次浏览 62人参与
# 刚工作,应该先搞钱or搞成长? #
4572次浏览 67人参与
# 离职你会和父母说吗? #
6213次浏览 86人参与
# 你投了多少家公司?进展是___ #
183330次浏览 1135人参与
# 如果公司降薪,你会跳槽吗? #
109254次浏览 687人参与
# 实习必须要去大厂吗? #
168279次浏览 1660人参与
# 你是怎么和mt相处的? #
82479次浏览 436人参与
# 你会为了工作牺牲生活吗? #
65025次浏览 446人参与

查看2道真题和解析