分析问题
题目要求查找出 从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;
}