201912-1 报数

201912-1 报数
思路一:

#include<iostream>
#include<string>
using namespace std;
int cnt[5];
bool is7(int num);

int main()
{
	int num = 1;//正常计数,用于处理7的问题
	int total = 0;//剩余没有被跳过的数总和
	int n; cin >> n;//数据个数限制

	while (total < n)
	{
		if (is7(num))
		{
			cnt[(num + 3) % 4]++;
			total--;//相当于不计入被跳过的数
		}
		num++;
		total++;
	}
	for (int i = 0; i < 4; i++) 
		cout << cnt[i] << endl;
	return 0;
}

bool is7(int num)
{
	if (num % 7 == 0) return true;
	while (num)
	{
		if (num % 10 == 7) return true;
		else num /= 10;
	}
	return false;
}

思路二:
区别主要在于 is7函数判断,这个代码只能得20分,不知道为什么!!!还求明白人指路!!!!!!

bool is7(int num)
{
	if (num % 7 == 0) return true;
	string s = to_string(num);
	for (int i = 0; i < s.size(); i++)
		if (s[i] == '7')
		{
			return true;
		}
	return false;
}

猜你喜欢

转载自blog.csdn.net/helloworld0529/article/details/107687081