C/C++火柴棍等式

   有n根(n<=24)火柴棍,你可以拼出多少个形如“A+B=C"的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示: 依次需要用到的火柴棍数目为6 2 5 5 4 5 6 3 7 6 。

    如果是初学者可能会这么写。

int main() {
	int a[10];
	int b, i, j, k;
	for (b = 0; b <= 9; b++) {
		cin >> a[b];
	}
	int n,n1;
	cin >> n;
	n1 = n - 4;
	for (i = 0; i <= 9; i++) {
		for (j = 0; j <= 9; j++) {
			for (k = 0; k <= 9; k++) {
				if ((i + j == k) && (a[i] + a[j] + a[k] == n1))
					cout << i << "+" << j << "=" << k<<endl;
			}
		}
	}

}

但聪明的小伙伴会发现问题了,我们漏掉了0+11=11、10+1=11这种两位数的火柴棍组合情况 。

正确做法如下:

int fun(int num) {
	int sum = 0;
	int a[10] = { 6, 2, 5 ,5 ,4 ,5 ,6 ,3 ,7 ,6 };
	while (num/10 != 0)//说明是两位数
	{
		sum += a[num % 10];
		num /= 10;
	}
	sum += a[num];//一位数
	return sum;
}

int main() {
	int n;
	int count = 0;
	cin >> n;
	for (int i = 0; i <= 1111; i++) {
		for (int j = 0; j <= 1111; j++) {
			int k = i+j;
			if (fun(i) + fun(j) + fun(k) == n - 4) {
				cout << i << "+" << j << "=" << k << endl;
				count++;
			}
		}
	}
	cout << "总共" << count << "种";


	return 0;
}





 

相关推荐

  1. 火柴游戏

    2024-03-17 13:56:03       57 阅读
  2. <span style='color:red;'>CI</span>/<span style='color:red;'>CD</span>

    CI/CD

    2024-03-17 13:56:03      49 阅读
  3. CCS 2023

    2024-03-17 13:56:03       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-17 13:56:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-17 13:56:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-17 13:56:03       82 阅读
  4. Python语言-面向对象

    2024-03-17 13:56:03       91 阅读

热门阅读

  1. redis的安装,启动和关闭

    2024-03-17 13:56:03       41 阅读
  2. 最新2024年项目基金撰写与技巧及GPT融合应用

    2024-03-17 13:56:03       36 阅读
  3. Android中使用intent可以传递哪些类型的数据?

    2024-03-17 13:56:03       38 阅读
  4. Docker安装kafka

    2024-03-17 13:56:03       45 阅读
  5. Vue生命周期

    2024-03-17 13:56:03       40 阅读
  6. 22.4 docker

    2024-03-17 13:56:03       42 阅读
  7. 设计模式之工厂模式

    2024-03-17 13:56:03       43 阅读
  8. mysql读写分离及高可用集群常见问题

    2024-03-17 13:56:03       38 阅读
  9. yum repolist命令的介绍

    2024-03-17 13:56:03       40 阅读
  10. 每天学习一个Linux命令之route

    2024-03-17 13:56:03       34 阅读
  11. 力扣94. 二叉树的中序遍历

    2024-03-17 13:56:03       44 阅读
  12. 反转链表综合(力扣)

    2024-03-17 13:56:03       41 阅读