CCF-201912-1报数

在这里插入图片描述
在这里插入图片描述

思路

我的思路很简单,先判断是否含有数字7得到一个小条件,然后再判断整体大条件,每满足一个大条件,总数n++(满足条件要跳过),代码如下,注释很明白:

#include<iostream>
using namespace std;
int n,v,m;
int a=0,b=0,c=0,d=0;//abcd代表甲乙丙丁
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		m=i;v=0;//m代表当前数字,v用来标识
		while(m>=10)//判断是否含有数字7
		{
			v=m%10;
			if(v==7)break;
			else m/=10;
		}
		if(m==7) v=7;//个位数单独判断,得到小条件v==7代表含有数字7,另一个小条件%7==0
		if(i%4==1&&i%7==0||i%4==1&&v==7)//i%4==1代表甲,两个小条件判断
		{
			a++;
			n++;//满足条件++
		}
		if(i%4==2&&i%7==0||i%4==2&&v==7)
		{
			b++;
			n++;
		}
		if(i%4==3&&i%7==0||i%4==3&&v==7)
		{
			c++;
			n++;
		}
		if(i%4==0&&i%7==0||i%4==0&&v==7)
		{
			d++;
			n++;
		}
	}
	//输出
	cout<<a<<endl;
	cout<<b<<endl;
	cout<<c<<endl;
	cout<<d<<endl;
	return 0;
}
发布了28 篇原创文章 · 获赞 40 · 访问量 3458

猜你喜欢

转载自blog.csdn.net/weixin_43912621/article/details/104207225
今日推荐