洛谷 P1149 火柴棒等式


程序说明

估计最大的数不超过1111,因为1111+1=1112需要的火柴数会大于24。先计算出1111以内所有的数所需要的火柴数,然后循环遍历。

代码如下:

#include <iostream>
using namespace std;
int a[2224];
int main() {
    int n, count = 0;
    cin>>n;
    int s[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
    for(int i = 0; i <= 2224; i++) {
        int j = i;
        if(j == 0) {
            a[j] = 6;
        }
        while(j >= 1) {
            a[i] = a[i] + s[j%10];
            j /= 10;
        }
    }
    for(int i = 0; i <= 1111; i++) 
        for(int j = 0; j <= 1111; j++) {
            if(a[i] + a[j] + a[i+j] + 4 == n) {
                count++;
            }
        }
    cout<<count;
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 解析:本题的火柴数有范围限制(n<=24),所以可以大致判断加数的范围在1000以内,那么我们只需要遍历2000以...
    CPPZWW阅读 570评论 0 0
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,898评论 0 9
  • 网站乱码问题我们会经常碰到,大多见于非英文的中文字符或其他字符乱码,而且,这类问题常常是因为编码方式问题,主要原因...
    波段顶底阅读 3,310评论 1 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,610评论 1 32
  • 经常有人通过微信或者电话咨询律师问题,也有的人为讨教法律问题去见律师。他给律师说他自己的事情,或者与人签了合同遭遇...
    海客曰阅读 1,218评论 2 5

友情链接更多精彩内容