40score在线求助!!神犇大佬们救救蒟蒻⑧www

P1149 [NOIP2008 提高组] 火柴棒等式

```cpp #include<iostream> using namespace std; int a[10]={6,2,5,5,4,5,6,3,7,6}; int b[2005]={6}; int main(){ int n=0; cin>>n; int c=0; for(int i=1;i<=2000;i++){ c=i; while(c!=0){ b[i]+=a[c%10]; c=c/10; } } int ans=0; for(int i=0;i<=1000;i++){ for(int j=0;j<=1000;j++){ if(b[i]+b[j]+b[i+j]+4==n){ ans++; } } } cout<<ans<<endl; return 0; } ``` 可以参考一下
by Revenge_LJX @ 2019-08-02 08:00:53


@[森森鸭](/space/show?uid=216176) 你这样只是做了个位的 万一A或B或C为十位数呢
by Revenge_LJX @ 2019-08-02 08:02:52


@[Revenge_LJX](/space/show?uid=230111) 好的谢谢啦!!!
by 森森鸭 @ 2019-08-02 15:46:28


#include<iostream> #include<cstdio> #include<cstring> using namespace std; int hcb[10]={6,2,5,5,4,5,6,3,7,6},nn; inline void num(int i) { if(i==0) nn+=6; while(i!=0) { nn+=(i%10==0?hcb[0]:hcb[i%10]); i/=10; } } int main() { int n,ans=0; scanf("%d",&n); n-=4; for(register int i=0;i<1111;i++) for(register int j=0;j<1111;j++) { nn=0; num(i); num(j); num(i+j); if(nn==n) { ans++; } } printf("%d",ans); }
by 神通之乐 @ 2019-09-09 21:22:20


|