小丽找数?

分析问题

题目要求查找出 从1 到 n 所有的数字中,每个数的各数位和满足条件指定条件,并将其统计出来。本题有一个条件,数字n小于9999,所以只要考虑四位数字即可。对个、十、百、千位求和后,再进行判断。

建立模型

遍历从1 至 n 的所有数

将每一个数的个十百千位相加

如果不能被2整除且不能被5整除

统计数加1

循环访问直到结束

编写代码

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n,temp,count=0;
    cin>>n;//n小于等于9999
    int i=1;
    while(i<=n){
        temp=i/1000+i/100%10+i/10%10+i%10;//个十百千位相加
        if(temp%2!=0 && temp%5!=0) count++;
        i++;
    }
    cout<<count;
    return 0;
}

保存 编译 运行