东方博宜 1057. 能被5整除且至少有一位数字是5的所有整数的个数。
思路:
1 首先输入n
2 用for循环遍历1-n中间的数
3 每一个数进行对5取余的运算,看是否能被5整除
4 在整除的基础上,看这个数的各个数位上是否有5,这一步将数对10取余之后,得出这个数个位上的数字,进行判断,判断个位上的数字是否是5,如果是,就跳出循环,因为这一道题要求的是至少有一个数字是5就行了。如果这个数的个位不是5,就将这个数除以10,得到的数再对5取余,就可以求这个数的百位数,判断百位数是否是5,以此类推。
5 如果这个数的数字上有5 ,就将计数的变量加1,最后输出计数总和。
#include<iostream>
using namespace std;
int main()
{int n ;cin >> n ;int cnt = 0 ;for(int i = 1 ; i <= n ; i++){if(i%5==0){bool m = false ;int t = i ;while(t>0){if(t%10==5){ m = true;break ;}t/=10; } if (m==true)cnt += 1 ;} }cout << cnt << endl ;return 0 ;
}