• tyvj1012 P1012


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

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

    1 #include <cstdio>
    2 int a[10] = {6,2,5,5,4,5,6,3,7,6},b[1000],n,cnt;
    3 int main(void) {
    4     freopen("in1.txt","r",stdin); cnt=0;
    5     scanf("%d",&n),n-=4;for(int i=0;i<10;++i)b[i]=a[i];
    6     for(int i=10;i<=999;++i) b[i]=b[i/10]+b[i%10];
    7     for(int i=0;i<=999;++i)if(b[i]<n) for(int j=0;j<=i;++j)if(b[i]+b[j]+b[i-j]==n)cnt++; printf("%d
    ",cnt);
    8     return 0;
    9 }

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

    写给自己看的。。=_=

  • 相关阅读:
    算法70----只有两个键的键盘【动态规划】
    Shell
    Shell
    Shell
    Shell
    Shell
    Tools
    Jenkins
    Java
    Product
  • 原文地址:https://www.cnblogs.com/liuxueyang/p/3175919.html
Copyright © 2020-2023  润新知