1 条题解

  • 0
    @ 2025-12-9 17:53:10

    从1到n枚举每个正整数x,把x分成每一位到数组里,看一下是否有连续的4或者7即可。

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int a[10],len,n;
    bool check(int x){
    	bool flag=0;len=0;
    	if(x%4==0||x%7==0)flag=1;
    	while(x){
    		a[++len]=x%10;
    		x/=10;
    	}
    	for(int i=1;i<len;i++){
    		if(a[i]==4&&a[i+1]==4)flag=1;
    		if(a[i]==7&&a[i+1]==7)flag=1;
    	}
    	return flag;
    }
    
    int main()
    {
    	int ans=0;
    	cin>>n;
    	for(int i=1;i<=n;i++)if(check(i))ans++;
    	cout<<ans;
    	return 0;
    }
    
    • 1

    信息

    ID
    11169
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    29
    已通过
    18
    上传者