4 条题解

  • 1
    @ 2025-4-5 15:17:10

    题目标签是搜索,其实打暴力也能过。由于数据范围小(1n241 \le n \le 24),所以可以直接枚举i和j,计算需要的火柴数,再判断是否为n

    Code:

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int c[10]={6,2,5,5,4,5,6,3,7,6};
    int cnt(int x){
    	if(x==0)return c[0];
    	int ans=0;
    	while(x){
    		ans+=c[x%10];
    		x/=10;
    	}
    	return ans;
    }
    int main(){
    	cin>>n;
    	n-=4;
    	if(n<=4){
    		cout<<0;
    		return 0;
    	}
    	int ans=0;
    	for(int i=0;i<=1000;i++){
    		for(int j=0;j<=1000;j++){
    			int k=i+j;
    			int t=cnt(i)+cnt(j)+cnt(k);
    			if(t==n)ans++;
    		}
    	}
    	cout<<ans;
    	return 0;
    }
    

    信息

    ID
    5207
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    109
    已通过
    56
    上传者