[普及练习场]失踪的7

简介: [普及练习场]失踪的7

 本专辑上篇: [普及练习场] 生活大爆炸版石头剪刀布

image.gif编辑

看得都爽,对吧!感谢hydro的页面和浴谷的搬运。

目录

一.读题

失踪的7

题意

二 .做题

算法原理

算法实现

全篇代码分解讲解

输入

中心


一.读题

失踪的7

题目描述

远古的 Pascal 人也使用阿拉伯数字来进行计数,但是他们又不喜欢使用 77 ,因为他们认为 77 是一个不吉祥的数字,所以 Pascal 数字 88 其实表示的是自然数中的 77,1818 表示的是自然数中的 1616 。请计算,在正整数 nn 范围以内包含有多少个 Pascal 数字。

输入格式

第一行为正整数 tt,接下来 tt 行,每行一个正整数 nn,且保证输入 nn 的是 Pascal 数字

输出格式

对于每个正整数 nn,输出 nn 以内的 Pascal 数的个数。

输入数据 1

2
10
20
image.gif

输出数据 1

9
18
image.gif

提示

对于所有数据,1 \leq t \leq 100001≤t≤10000,1 \leq n \leq 2^{32}-11≤n≤232−1。

题意

计算在1到n的所有整数中有多少个不含7的数。


二 .做题

算法原理

很容易发现,

n每增加10(n≠70),含7数字个数加1个,Pascal数字增加9^1个;

n每增加100(n≠700),含7数字个数加10+9×1个,Pascal数字增加9^2个;

n每增加1000(n≠7000),含7数字个数加100+9×(10+9×1)个,Pascal数字增加9^3个;

n每增加10000(n≠70000),含7数字个数加1000+9×(100+9×(10+9×1))个,Pascal数字增加9^4个;

……

为了方便解释,将增加的个数成为基准值

算法实现

①从个位到最高位分解n。

②如果这一位数小于七,那么直接加上 它乘它那基准值为了方便解释,将增加的个数成为基准值);如果大于七,还要在上面的基础上减去一个基准值。因为类似于700-799,700000-799999,7000-7999,这些数一个都不是Pascal数,与上述规则不符,要全部减去。

全篇代码分解讲解

输入

scanf("%d",&t);

image.gif

中心

第一个while相当于for(int i=1;i<=t;i++)。

输入n后,开始模拟实现上述过程。f用来算基准值,s来统计个数。第二个while用来拆解n,自己看吧!

最后,输出。

while(t--)
  {
    long long s=0,f=1;
    scanf("%lld",&n);
    while(n!=0)
    {
      int q=n%10;
      if(q<7) s+=f*q;
      else s+=f*q-f;
      f*=9;
      n/=10; 
    }
        printf("%lld\n",s);
  }

image.gif


下次,我们将讲解:题目详情 - 楼房 - 浴谷 - HydroOJ

相关文章
|
3月前
|
机器学习/深度学习 人工智能 算法
在这个智能设备云集的时代,物联网就像一场盛大的派对,设备们交流信息,共舞一曲
在这个智能设备云集的时代,物联网就像一场盛大的派对,设备们交流信息,共舞一曲。机器学习与人工智能则是派对上的指挥家,让设备学会理解用户习惯,如智能空调调节温度;赋予设备自主决策力,如智能安防识别异常;并拓展至农业、交通等更多领域,创造更智能的世界。通过简单的温度预测代码示例,我们得以窥见机器学习在物联网中的无限可能。
23 2
「镁客·请讲」逍森科技姚冬暐:事故频发的高空清洁市场,或将成机器人最好的舞台
由于公司的机器人能够自主爬行,所以产品的延展性会很好,未来能够实现多场景的应用。
605 0
|
人工智能 安全 物联网
5G迎来周岁:技术、设备双发力,应用仍存问题
虽然新冠疫情让大家生活停摆了1个季度,但5G的建设却始终还在如火如荼的进行当中。作为通讯史上速度最快、应用范围最广的通信技术,5G被寄予了推动经济发展、引领科技变革和振兴国家软件实力等多重期盼。
|
物联网 机器人 智能硬件
|
安全 物联网 网络安全
物联网变身黑暗森林:僵尸网络、守护者、毁灭者层出不穷
本文讲的是物联网变身黑暗森林:僵尸网络、守护者、毁灭者层出不穷,就在最近,我开始崇拜一个黑客,他叫Janit0r。也许你并未听说过他,但是他所做的一切都值得你去尊敬。
1466 0