zoukankan      html  css  js  c++  java
  • 幸运数字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;
    }
    
  • 相关阅读:
    (QR14)带权的DAG节点排序
    数字组合
    最长连续不重复子序列
    树状数组
    归并排序
    差分
    前缀和
    64位整数乘法
    MySQL8 常用指令
    离线及实时实操架构
  • 原文地址:https://www.cnblogs.com/wuwendongxi/p/13321772.html
Copyright © 2011-2022 走看看