tyvj1012 P1012 - 火柴棒等式 ——暴力枚举

题目链接:https://www.tyvj.cn/Problem_Show.aspx?id=1012

可以发现:最大的数字绝对不超过999,只要枚举出0~999所有数字需要的火柴数,然后再枚举C和A,得到B=C-A,看看三个数字的火柴数目是否等于n就可以了。

 #include <cstdio>
int a[] = {,,,,,,,,,},b[],n,cnt;
int main(void) {
freopen("in1.txt","r",stdin); cnt=;
scanf("%d",&n),n-=;for(int i=;i<;++i)b[i]=a[i];
for(int i=;i<=;++i) b[i]=b[i/]+b[i%];
for(int i=;i<=;++i)if(b[i]<n) for(int j=;j<=i;++j)if(b[i]+b[j]+b[i-j]==n)cnt++; printf("%d\n",cnt);
return ;
}

还有一个比较快的思路,因为n最大是24,所以可以用上面的程序,把这24个数字都算出来,就是一个大小为24个数组,直接输出就可以。

写给自己看的。。=_=

上一篇:LINQ的Intersect方法


下一篇:asp json