题解:B4316 [语言月赛 202504] 整除判断

· · 题解

本题考查循环嵌套,同时包含“用循环拆分出各个数位”的经典模型。

首先考虑如何计算一个数的数位和,但同时又保留这个数本身。

比较直接的计算方法时每次让 x 除以 10,然后把每一步的数字个位相加。如果我们先“复制”一遍 x,然后在“分身” y 上进行操作,就可以保留 x

        int x,sum=0;
        scanf("%d",&x);
        for(int y=x;y;y/=10)
            sum+=y%10;

接下来对于一个数而言,我们只要判断其是否符合题意,符合题意就输出即可。

那么如何处理 n 个数呢?只要在上一步的基础上再套一层循环;为了判断是否输出 None,我们可以用变量 c 记录符合要求的数字个数。在外层循环结束时(也就是 n 个数都判断完时),如果 c 仍然是 0,那么就需要输出 None