B3743 [语言月赛202304] 扶苏与 0 题解

· · 题解

Source & Knowledge

## 题目大意 这是[题目内容](https://www.luogu.com.cn/problem/B3743) ## 题目分析 这题要解决的问题有两个: 一是如何存储一个数字中“$0$ 的影子”的数量,这个可以用与本次比赛的第二题一样,用数组存下。 二是如何提取出一个数字的每一位数字,这大家应该都学过了,用一个 $while$ 循环,只要 $n>0$ 就用 $n\mod10$ 取出当前位,$n/=10$ 去掉当前位即可,用一个变量统计答案即可。 这题 $n$ 的范围达到了 $10^{18}$,需定义为 $long$ $long$ 类型。 核心代码如下: ```cpp int a[10]={1,0,1,0,0,0,1,0,2,1}; while(n){ ans+=a[n%10]; n/=10; } ``` ## 视频讲解 **完整代码请在视频题解中查看**。 ![](bilibili:BV1jo4y1L7fz?page=3)