1 solutions

  • 3
    @ 2024-7-16 20:10:38

    有彩蛋

    题意

    nn根火柴棒能组成多少个A+B=CA+B=C的等式

    ++,==都是22根火柴棒

    A+B=CA+B=CB+A=CB+A=C 视为不同的等式

    思路

    枚举AA,BB求出CC,检查AA,BB,CC的火柴棒数是否满足等于nn

    因为++,==都是22根火柴棒,所以有效的只有n4n-4

    因为A+B=CA+B=CB+A=CB+A=C 视为不同的等式,所以AA,BB都要从00开始

    tipstips : 2424的极限值 1111+1=11121111+1=1112 2121根+44根符号

    代码

    #include<iostream>
    using namespace std;
    int n,sum=0;
    int num[10]={6,2,5,5,4,5,6,3,7,6};//每个数字的火柴棒数
    int main()
    {
        cin>>n;//输入
        for(int i=0;i<725;i++)//枚举A,725是测试出来的,开始是1111,最低700-725
        {
        	for(int j=0;j<725;j++)//枚举B
        	{
        		string a=to_string(i);//求出字符串A,c++11数字转字符串的函数
        		string b=to_string(j);//求出字符串B
        		string c=to_string(i+j);//求出字符串C
        		int as=0,bs=0,cs=0;//A,B,C的火柴棒数
        		for(int k=0;k<a.size();k++)
        		{
        			as+=num[a[k]-48];//获取A每一位的火柴棒数
    			}
    			for(int k=0;k<b.size();k++)
        		{
        			bs+=num[b[k]-48];//获取B每一位的火柴棒数
    			}
    			for(int k=0;k<c.size();k++)
        		{
        			cs+=num[c[k]-48];//获取C每一位的火柴棒数
    			}
        		if(as+bs+cs+4==n)//满足条件
        		{
        			sum++;
    			}
    		}
    	}
    	cout<<sum;//输出
        return 0;//完结散花
    }
    

    彩蛋

    写完暴力代码后运行超慢,本来想打表,本来想提交看看暴力有多少分,结果AC了,提高组好水啊!!!

    • 1

    Information

    ID
    149
    Time
    1000ms
    Memory
    125MiB
    Difficulty
    2
    Tags
    # Submissions
    136
    Accepted
    14
    Uploaded By