#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <stdlib.h>
int n = 0;
int arr[6]; //记录
int nums[1000] = {6,2,5,5,4,5,6,3,7,6};
//x = 火柴位
int res = 0;
int shu(int x)
{
if (nums[x] > 0)
{
return nums[x];
}
else
{
int sum1 = 0;
while (x > 0)
{
sum1 = sum1 + nums[x % 10];
x =x / 10;
}
return sum1;
}
}
void dfs(int x,int sum)
{
if (sum > n) return;
if (x > 3)
{
if ((arr[1] + arr[2] == arr[3])&&sum == n)
res++;
return;
}
int i = 0;
for (i = 0; i < 1000; i++)
{
arr[x] = i;
dfs(x + 1,sum+shu(i));
arr[x] = 0;
}
}
int main()
{
scanf("%d", &n);
n = n - 4;
dfs(1,0);
printf("%d", res);
return 0;
}
洛谷火柴人
最新推荐文章于 2025-05-23 08:55:07 发布