题目:4和7是两个幸运数字,我们定义,十进制表示中,每一位只有4和7两个数的正整数都是幸运数字,前几个幸运数字为:4,7,44,47,74,77,444,447······
输出第K个数字。

思路是:
将4换成0,7换成1,那么
4, 7, 44, 47, 74, 77, 444, 447... 变成了
0, 1, 00, 01, 10, 11, 000, 001...对应的十进制是:
0, 1, 0, 1, 2, 3, 0, 1...看着没什么规律啊,不好处理,关键的问题在于00,01,000等都因为前边是0失去了本身的大小,那么如果我们在前面都加个1呢?
10, 11, 100, 101, 110, 111, 1000, 1001...变成十进制:
2, 3, 4, 5, 6, 7, 8, 9...

规律出来了。

我要求第K个数字,那么反向推不就得了。
先把K变成二进制(K+1的二进制),然后去掉最前面的1,然后将0替换为4,将1替换为7。答案就出来了。

代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[]; ll f(ll n){
n+=;
int b[];
int i,j=; while(n){
b[j++]=n%;
n/=; }
for(i=j-;i>=;i--){
if(b[i]==)
cout<<'';
else if(b[i]==)
cout<<''; }
}
int main(){
ll t;
cin>>t;
for(int k=;k<t;k++){
cin>>a[k];
f(a[k]);
cout<<endl;
} return ;
}

最新文章

  1. Linux驱动学习 —— 在/sys下面创建目录示例
  2. 5 Convert Sorted List to Binary Search Tree_Leetcode
  3. 一鼓作气 博客--第三篇 note3
  4. C++ 连接数据库的入口和获取列数、数据
  5. QT QString 很全的使用 (转)
  6. Java虚拟机JVM学习02 类的加载概述
  7. Flowplayer-JavaScript API
  8. [转载] Linux下多路复用IO接口 epoll select poll 的区别
  9. iOS:自动布局Autolayout
  10. TCP/IP 相关知识点与面试题集
  11. js 函数闭包内部返回函数体调用方法难点解答
  12. 命令行界面下的用户和组管理之usermod的使用
  13. 《Linear Algebra and Its Applications》-chaper1-向量方程、矩阵方程和线性方程组
  14. Android生存指南:Eclipse快捷键
  15. java去重(1通过迭代器,2直接赋值)
  16. [LeetCode] Non-negative Integers without Consecutive Ones 非负整数不包括连续的1
  17. outlook VSTO
  18. python 的基础 学习 12天,函数
  19. CentOS7安装MySQL并设置远程登录
  20. Tomcat日志文件catalina.out文件过大问题

热门文章

  1. slf4j日志使用
  2. release 步骤
  3. 【UML】NO.46.EBook.5.UML.1.006-【UML 大战需求分析】- 用例图(Use Case Diagram)
  4. Centos安装Oracle及问题处理
  5. 使用 Asp.net core 2.0 + Angular 4 构建车辆管理的Web应用程序
  6. SpringMvc HandlerMappings 何时初始化?
  7. K均值
  8. vue store存储commit和dispatch
  9. vue mandmobile ui实现三列列表的方法
  10. 事件冒泡以及onmouseenter 和 onmouseover 的不同