当前位置:   article > 正文

2023华为od统一考试B卷【分积木】C语言 实现

2023华为od统一考试B卷【分积木】C语言 实现

           所有题目均有五种语言实现。C实现目录C++ 实现目录Python实现目录Java实现目录JavaScript实现目录

题目

        Solo和koko是两兄弟,妈妈给了他们一大堆积木,每块积木上都有自己的重量。现在他们想要将这些积木分成两堆。

        哥哥Solo负责分配,弟弟koko要求两个人获得的积木总重量“相等”(根据Koko的逻辑),个数可以不同,不然就会哭,但koko只会先将两个数转成二进制再进行加法,而且总会忘记进位(每个进位都忘记)。如当25(11101)加11(1011)时,koko得到的计算结果是18(10010):
11001
+010111
10010
Solo想要尽可能使自己得到的积木总重量最大,且不让koko哭。
输入描述:
3
3 5 6
第一行是一个整数N(2≤N≤100),表示有多少块积木;第二行为空格分开的N个整数Ci(1≤Ci≤10
6),表示第i块积木的重量。
输出描述:
11
让koko不哭,输出Solo所能获得积木的最大总重量;否则输出“NO”。

思路

1:明显出题想偷懒,这不是和分苹果是一模一样的逻辑,就是描述不一样了。

2:题解直接看我分苹果的题解就可以,代码这里贴一个新的吧。

3:位运算

符号描述运算规则
&两个位都为1时,结果才为1
|两个位都为0时,结果才为0
^异或两个位相同为0,相异为1
~取反0变1,1变0
<<左移各二进位全部左移若干位,高位丢弃,低位补0
>>右移各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)

考点

1:位操作

2:题目理解

Code

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdbool.h>
  5. #include <math.h>
  6. #include <limits.h>
  7. #include <float.h>
  8. #include <stdint.h>
  9. #include <ctype.h>
  10. #define CEILING_POS(X) ((X-(int)(X)) > 0 ? (int)(X+1) : (int)(X))
  11. #define CEILING_NEG(X) ((X-(int)(X)) < 0 ? (int)(X-1) : (int)(X))
  12. #define CEILING(X) ( ((X) > 0) ? CEILING_POS(X) : CEILING_NEG(X) )
  13. #define MIN(a, b) ((a) < (b)) ? (a) : (b)
  14. #define MAX(a, b) ((a) > (b)) ? (a) : (b)
  15. int cmpfunc (const void * a, const void * b) {
  16. return ( *(int*)a - *(int*)b );
  17. }
  18. //qsort(dp, m+1, sizeof(int), cmpfunc);
  19. int main() {
  20. int n;
  21. scanf("%d", &n);
  22. int min_num = 0;
  23. int total = 0;
  24. int xor_value = 0;
  25. for (int i = 0; i < n; i++) {
  26. int x;
  27. scanf("%d", &x);
  28. if (i == 0) {
  29. min_num = x;
  30. } else {
  31. min_num = MIN(min_num, x);
  32. }
  33. total += x;
  34. xor_value ^= x;
  35. }
  36. if (xor_value == 0) {
  37. printf("%d",total - min_num);
  38. } else {
  39. printf("NO");
  40. }
  41. return 0;
  42. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/99470
推荐阅读
相关标签
  

闽ICP备14008679号