请编写一段C语言程序计算一个有N个不同重量的砝码两边均可放置砝码的天平一共能测量出多少种重量?
#include <stdio.h>
int main() { int N; scanf("%d", &N); //输入砝码个数 int weight[N]; //定义砝码重量数组 for (int i = 0; i < N; i++) { scanf("%d", &weight[i]); //输入每个砝码的重量 } int sum = 0; //计数器,记录不同的重量数 for (int i = 0; i < (1 << N); i++) { //枚举所有可能的放置方式 int left = 0, right = 0; //左右两边的重量 for (int j = 0; j < N; j++) { if (i & (1 << j)) { //第j个砝码放在右边 right += weight[j]; } else { //第j个砝码放在左边 left += weight[j]; } } if (left == right) { //天平两边重量相等 sum++; } } printf("%d\n", sum); return 0; }
原文地址: http://www.cveoy.top/t/topic/bD7O 著作权归作者所有。请勿转载和采集!