题意:给出n根火柴,问有多少种拼成不同等式的方式。
题记:枚举A和B,然后算出C。最后把火柴数量算一算是否等于n就可以了。
#include<iostream> #include<cstdio> using namespace std; typedef long long ll; const int N=1e4+10; int num[10]={6,2,5,5,4,5,6,3,7,6}; int getnum(int x){ int res=0; res+=num[x%10]; x/=10; while(x>0){ res+=num[x%10]; x/=10; } return res; } int main(){ int n; cin>>n; int ans=0; for(int a=0;a<=2000;a++){ for(int b=0;b<=2000;b++){ int c=a+b; int numa=getnum(a); int numb=getnum(b); int numc=getnum(c); if(numa+numb+numc+4==n) ans++; } } cout<<ans<<endl; return 0; }