提交时间:2024-05-03 09:38:15

运行 ID: 46310

#include<bits/stdc++.h> using namespace std; int cnt; bool ex_37(int n){ while(n){ if(n%10==3||n%10==7) return 0; n/=10; } return 1;//这个数任何数位都不包含3或者7 } void dfs(int n,int k,int a){ if(k==1){ if(n>=a) cnt+=ex_37(n);//能拆时,判断m是否包含37 return ; } for(int i=a;i*k<=n;i++){ if(ex_37(i)){ dfs(n-i,k-1,i+1); } } } int main() { int n; cin>>n; dfs(n,3,1); cout<<cnt<<endl; return 0; }