幸运数字4&7
Description
我们认为只包含4和7的数字为幸运数字,比如4, 7, 44, 47, 74…
现在对于给定的N,请你求出第N个幸运数字。
Input
第1行:1个整数N
Output
第1行:1个数,表示第N个幸运数字
Sample Input
5
Sample Output
74
题外话:看了下其他题解,这个好像不是正解?思想都差不多
代码
#include <iostream>
#include <cstdio>
using namespace std;
int ans[15];
int main()
{
int n,cnt; scanf("%d",&n);
for(cnt=1;;++cnt) if((1<<(cnt+1))-2>=n) break;//(1<<(cnt+1))-2表示:小于等于cnt未的幸运数字的个数
n-=((1<<cnt)-2);//位数为cnt,第n个
for(int i=cnt-1;i>=0;--i)
{
if(n>(1<<i)) ans[i]=7,n-=(1<<i);
else ans[i]=4;
}
for(int i=cnt-1;i>=0;--i) printf("%d",ans[i]);
return 0;
}