CCF模拟题201912-1 报数——个人答案记录

CCF模拟题201912-1 报数——个人答案记录

CCF模拟题201912-1 报数——个人答案记录_第1张图片
CCF模拟题201912-1 报数——个人答案记录_第2张图片

#include 

/*判断数字是否含7或是7的倍数*/
bool judge(int numberOff)
{
     
	int remainder = 0;
	if (numberOff % 7 == 0)
	{
     
		return true;
	}
	else
	{
     
	    //从个位开始取数并判断
		while (numberOff != 0)
		{
     
			remainder = numberOff % 10;
			if (remainder == 7)
			{
     
				return true;
			}
			numberOff = (numberOff - remainder) / 10;
		}
	}
	return false;
}

int main()
{
     
	int n;
	std::cin >> n;
	int skip[4] = {
      0,0,0,0 };
	int count = 1, numberOff = 1;
	while (count <= n)
	{
     
		if (judge(numberOff))
		{
     
			int number = numberOff % 4;
			switch (number)
			{
     
			case 1:
				skip[0]++;
				break;
			case 2:
				skip[1]++;
				break;
			case 3:
				skip[2]++;
				break;
			case 0:
				skip[3]++;
				break;
			}
		}
		else
		{
     
			count++;
		}
		numberOff++;
	}
	for (int i = 0; i < 4; i++)
	{
     
		std::cout << skip[i] << std::endl;
	}
	return 0;
}

出错记录:条件没有考虑完整,含7不只是个位含7,是所有位数都有可能含7,所以个人在处理时,从个位开始把每一位都掏出来判断是否等于7。

你可能感兴趣的:(c++)