我觉得对于初学者来说难点在于如何把数字一位位地取出来。

一种比较通用的方法是将它对10取模,然后除以十(相当于舍去个位,原来的十位成为新的个位,以此类推)。

由于不清楚数字的位数,使用 while 循环的同时利用 C++ 非 00 即为真的特性判断是否取完即可。

#include<stdio.h>
int a,b,c;
int main(){
    scanf("%d%d",&a,&b);
    for(int i=a;i<=b;i++){
        int tmp=i,s=0;
        while(tmp){
            s+=tmp%10;
            tmp/=10;
        }
        if(s%5==0) c++;
    }
    printf("%d",c);
}