欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

P1149 火柴棒等式

程序员文章站 2022-05-22 08:22:54
...

P1149 火柴棒等式
P1149 火柴棒等式
思路
由于最多一共24根火柴,单个数字最大不大于1000,相加最大不超过2000。所以第一步先求出0到2000每个数字所要用的火柴数。第二步用两层for循环满足b[i]+b[j]+b[i+j]==n-4,即为所求。
AC CODE

#include<bits/stdc++.h>
using namespace std;
int n,a[100],b[10000],ans=0;
int main()
{
	cin>>n;
	a[0]=6;a[1]=2;a[2]=5;a[3]=5;a[4]=4;
	a[5]=5;a[6]=6;a[7]=3;a[8]=7;a[9]=6;
	b[0]=6;
	for(int i=1;i<=2000;i++)
	{
		int j=i;
		while(j)
		{
			b[i]=b[i]+a[j%10];
			j=j/10; 
		}
	}
	for(int i=0;i<=1000;i++)
	{
		for(int j=0;j<=1000;j++)
		{
			if(b[i]+b[j]+b[i+j]==n-4) ans++;
		}
	}
	printf("%d\n",ans);
	return 0;
}
相关标签: 一些题