zl程序教程

您现在的位置是:首页 >  其他

当前栏目

华为OJ 初级 挑7

华为 初级 OJ
2023-09-27 14:26:30 时间

本题 是将比输入数字小的所有和7有关的数的个数输出

包括以下2类

(1)可以被7整除的数

(2)数字位置上有7的数

代码如下




#include<iostream>
using namespace std;
int count(int n)
{
	int count1 = 0;
	for (int i = 1; i <= n; i++)
	{
		if ((i%7)== 0||(i - 7)%10== 0)//判断是否为7的倍数及个位是否为7
			count1++;
		else
		{      //判断其他位是否为7
			for (int j = i/10; j > 0;j/=10)
			{
				if ((j - 7) % 10 == 0)
				{
					count1++;
					break;
				}
			}
		}
	}
	return count1;
}
int main()
{
	int n;
	cin>>n;
	cout<<count(n)<<endl;
	return 0;
}