E 幸运数字Ⅱ

https://ac.nowcoder.com/acm/contest/5086/E

思路:幸运数字在1e9的范围内,数量也就2000多个。

   于是我们可以dfs求出所有幸运数字,然后遍历即可

E 幸运数字Ⅱ

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 ll base[3000]; int num;
 5 int tmp[15];
 6 void dfs(int limit,int step,int val)
 7 {
 8     tmp[step]=val;
 9     if(step==limit){
10         num++;
11         ll res=0;
12         for(int i=1;i<=limit;i++){
13             res=res*10+tmp[i];
14         }
15         base[num]=res;
16         return;
17     }
18     dfs(limit,step+1,4);
19     dfs(limit,step+1,7);
20 }
21 void init()
22 {
23     for(int i=1;i<=10;i++){
24         dfs(i,0,0);
25     }
26 }
27 int main()
28 {
29     init();
30 //    printf("num:%dn",num);
31 //    for(int i=1;i<=100;i++)
32 //        printf("%dn",base[i]);
33     ll L,R;
34     scanf("%lld%lld",&L,&R);
35     ll ans=0;
36     for(int i=1;i<=num;i++){
37         if(L>R) break;
38         if(base[i]>=L){
39             if(base[i]<=R){
40                 ans=ans+(base[i]-L+1)*base[i];
41                 L=base[i]+1;
42             }
43             else{
44                 ans=ans+(R-L+1)*base[i];
45                 L=R+1;
46             }
47         }
48     }
49     printf("%lldn",ans);
50     return 0;
51 }

View Code

 

原文链接: https://www.cnblogs.com/pangbi/p/12876755.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    E 幸运数字Ⅱ

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/348120

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午4:53
下一篇 2023年3月2日 上午4:54

相关推荐