ZJNU——1259:幸运数字(找规律题)
生活随笔
收集整理的這篇文章主要介紹了
ZJNU——1259:幸运数字(找规律题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Description
數字4和7是幸運數字,而其他的都不是幸運數字。一個整數是幸運數字,當且僅當它的十進制表示只包含幸運數字。現在讓你給出第K大的幸運數字。
Input
第一行一個整數K(1<=K<=10^9)Output
第K大的幸運數字。
Sample Input
123Sample Output
4744?
之前很早以前有去想過做這道題,但是嫌太麻煩就沒寫。今天被別人刺激后決心自己去把它做出來,于是在心靜下來后一次性就把它AC了。所以靜能生慧,加油!
?
思路:
我現在紙上寫出了前30個數字。然后發現每一位都是有規律的。并且n給的范圍很大,所以只能一位一位輸出的方法。
代碼:
#include<stdio.h> #include<math.h> #include<string.h> int main(){int i,j,k,n,t,T;int a[1000];//n代表的是位數; while(scanf("%d",&k)!=EOF){memset(a,0,sizeof(a));for(i=1; ;i++)if(k<=pow(2,i+1)-2) break;n=i; //首先找出它的位數。//以下是判斷最后一位是什么的; if(k%2==0) a[1]=7;else a[1]=4;for(i=2;i<=n;i++){//這個周期是當前那一位的,只有滿足下面那個if中的條件那一位才是4; T=pow(2,i);if( 0<(int)(k-(pow(2,n)-2))%T &&(int)(k-(pow(2,n)-2))%T<=pow(2,i-1)) a[i]=4;else a[i]=7;}for(i=n;i>=1;i--)printf("%d",a[i]);printf("\n");} }?
希望自己能夠憑借自己的力量做出更多的題來,加油!
總結
以上是生活随笔為你收集整理的ZJNU——1259:幸运数字(找规律题)的全部內容,希望文章能夠幫你解決所遇到的問題。