[C][算法][穷举]求31a + 30b + 29c + 28d = 1461的非负整数解

实现:

 1 #include <stdio.h>
 2 #define M 1461
 3
 4 int main(void) {
 5   printf("%4s%4s%4s%4s\n", "a", "b", "c", "d");
 6
 7   for (int a = 0; a < M; ++a) {
 8     for (int b = 0; b < M; ++b) {
 9       for (int c = 0; c < M; ++c) {
10         for (int d = 0; d < M; ++d) {
11           int sum = 31*a + 30*b + 29*c + 28*d;
12
13           if (sum == M) {
14             printf("%4d%4d%4d%4d\n", a, b, c, d);
15           } else if (sum > M) {
16             break;
17           }
18         }
19       }
20     }
21   }
22
23   return 0;
24 }

输出:

   a   b   c   d
   0   0   5  47
   0   0  33  18
   0   1   3  48
   0   1  31  19
   0   2   1  49
   0   2  29  20
   0   3  27  21
   0   4  25  22
   0   5  23  23
   0   6  21  24
   0   7  19  25
   0   8  17  26
   0   9  15  27
   0  10  13  28
   0  11  11  29
   0  11  39   0
   0  12   9  30
   0  12  37   1
   0  13   7  31
   0  13  35   2
   0  14   5  32
   0  14  33   3
   0  15   3  33
   0  15  31   4
   0  16   1  34
   0  16  29   5
   0  17  27   6
   0  18  25   7
   0  19  23   8
   0  20  21   9
   0  21  19  10
   0  22  17  11
   0  23  15  12
   0  24  13  13
   0  25  11  14
   0  26   9  15
   0  27   7  16
   0  28   5  17
   0  29   3  18
   0  30   1  19
   0  40   9   0
   0  41   7   1
   0  42   5   2
   0  43   3   3
   0  44   1   4
   1   0   2  49
   1   0  30  20
   1   1   0  50
   1   1  28  21
   1   2  26  22
   1   3  24  23
   1   4  22  24
   1   5  20  25
   1   6  18  26
   1   7  16  27
   1   8  14  28
   1   9  12  29
   1   9  40   0
   1  10  10  30
   1  10  38   1
   1  11   8  31
   1  11  36   2
   1  12   6  32
   1  12  34   3
   1  13   4  33
   1  13  32   4
   1  14   2  34
   1  14  30   5
   1  15   0  35
   1  15  28   6
   1  16  26   7
   1  17  24   8
   1  18  22   9
   1  19  20  10
   1  20  18  11
   1  21  16  12
   1  22  14  13
   1  23  12  14
   1  24  10  15
   1  25   8  16
   1  26   6  17
   1  27   4  18
   1  28   2  19
   1  29   0  20
   1  38  10   0
   1  39   8   1
   1  40   6   2
   1  41   4   3
   1  42   2   4
   1  43   0   5
   2   0  27  22
   2   1  25  23
   2   2  23  24
   2   3  21  25
   2   4  19  26
   2   5  17  27
   2   6  15  28
   2   7  13  29
   2   7  41   0
   2   8  11  30
   2   8  39   1
   2   9   9  31
   2   9  37   2
   2  10   7  32
   2  10  35   3
   2  11   5  33
   2  11  33   4
   2  12   3  34
   2  12  31   5
   2  13   1  35
   2  13  29   6
   2  14  27   7
   2  15  25   8
   2  16  23   9
   2  17  21  10
   2  18  19  11
   2  19  17  12
   2  20  15  13
   2  21  13  14
   2  22  11  15
   2  23   9  16
   2  24   7  17
   2  25   5  18
   2  26   3  19
   2  27   1  20
   2  36  11   0
   2  37   9   1
   2  38   7   2
   2  39   5   3
   2  40   3   4
   2  41   1   5
   3   0  24  24
   3   1  22  25
   3   2  20  26
   3   3  18  27
   3   4  16  28
   3   5  14  29
   3   5  42   0
   3   6  12  30
   3   6  40   1
   3   7  10  31
   3   7  38   2
   3   8   8  32
   3   8  36   3
   3   9   6  33
   3   9  34   4
   3  10   4  34
   3  10  32   5
   3  11   2  35
   3  11  30   6
   3  12   0  36
   3  12  28   7
   3  13  26   8
   3  14  24   9
   3  15  22  10
   3  16  20  11
   3  17  18  12
   3  18  16  13
   3  19  14  14
   3  20  12  15
   3  21  10  16
   3  22   8  17
   3  23   6  18
   3  24   4  19
   3  25   2  20
   3  26   0  21
   3  34  12   0
   3  35  10   1
   3  36   8   2
   3  37   6   3
   3  38   4   4
   3  39   2   5
   3  40   0   6
   4   0  21  26
   4   1  19  27
   4   2  17  28
   4   3  15  29
   4   3  43   0
   4   4  13  30
   4   4  41   1
   4   5  11  31
   4   5  39   2
   4   6   9  32
   4   6  37   3
   4   7   7  33
   4   7  35   4
   4   8   5  34
   4   8  33   5
   4   9   3  35
   4   9  31   6
   4  10   1  36
   4  10  29   7
   4  11  27   8
   4  12  25   9
   4  13  23  10
   4  14  21  11
   4  15  19  12
   4  16  17  13
   4  17  15  14
   4  18  13  15
   4  19  11  16
   4  20   9  17
   4  21   7  18
   4  22   5  19
   4  23   3  20
   4  24   1  21
   4  32  13   0
   4  33  11   1
   4  34   9   2
   4  35   7   3
   4  36   5   4
   4  37   3   5
   4  38   1   6
   5   0  18  28
   5   1  16  29
   5   1  44   0
   5   2  14  30
   5   2  42   1
   5   3  12  31
   5   3  40   2
   5   4  10  32
   5   4  38   3
   5   5   8  33
   5   5  36   4
   5   6   6  34
   5   6  34   5
   5   7   4  35
   5   7  32   6
   5   8   2  36
   5   8  30   7
   5   9   0  37
   5   9  28   8
   5  10  26   9
   5  11  24  10
   5  12  22  11
   5  13  20  12
   5  14  18  13
   5  15  16  14
   5  16  14  15
   5  17  12  16
   5  18  10  17
   5  19   8  18
   5  20   6  19
   5  21   4  20
   5  22   2  21
   5  23   0  22
   5  30  14   0
   5  31  12   1
   5  32  10   2
   5  33   8   3
   5  34   6   4
   5  35   4   5
   5  36   2   6
   5  37   0   7
   6   0  15  30
   6   0  43   1
   6   1  13  31
   6   1  41   2
   6   2  11  32
   6   2  39   3
   6   3   9  33
   6   3  37   4
   6   4   7  34
   6   4  35   5
   6   5   5  35
   6   5  33   6
   6   6   3  36
   6   6  31   7
   6   7   1  37
   6   7  29   8
   6   8  27   9
   6   9  25  10
   6  10  23  11
   6  11  21  12
   6  12  19  13
   6  13  17  14
   6  14  15  15
   6  15  13  16
   6  16  11  17
   6  17   9  18
   6  18   7  19
   6  19   5  20
   6  20   3  21
   6  21   1  22
   6  28  15   0
   6  29  13   1
   6  30  11   2
   6  31   9   3
   6  32   7   4
   6  33   5   5
   6  34   3   6
   6  35   1   7
   7   0  12  32
   7   0  40   3
   7   1  10  33
   7   1  38   4
   7   2   8  34
   7   2  36   5
   7   3   6  35
   7   3  34   6
   7   4   4  36
   7   4  32   7
   7   5   2  37
   7   5  30   8
   7   6   0  38
   7   6  28   9
   7   7  26  10
   7   8  24  11
   7   9  22  12
   7  10  20  13
   7  11  18  14
   7  12  16  15
   7  13  14  16
   7  14  12  17
   7  15  10  18
   7  16   8  19
   7  17   6  20
   7  18   4  21
   7  19   2  22
   7  20   0  23
   7  26  16   0
   7  27  14   1
   7  28  12   2
   7  29  10   3
   7  30   8   4
   7  31   6   5
   7  32   4   6
   7  33   2   7
   7  34   0   8
   8   0   9  34
   8   0  37   5
   8   1   7  35
   8   1  35   6
   8   2   5  36
   8   2  33   7
   8   3   3  37
   8   3  31   8
   8   4   1  38
   8   4  29   9
   8   5  27  10
   8   6  25  11
   8   7  23  12
   8   8  21  13
   8   9  19  14
   8  10  17  15
   8  11  15  16
   8  12  13  17
   8  13  11  18
   8  14   9  19
   8  15   7  20
   8  16   5  21
   8  17   3  22
   8  18   1  23
   8  24  17   0
   8  25  15   1
   8  26  13   2
   8  27  11   3
   8  28   9   4
   8  29   7   5
   8  30   5   6
   8  31   3   7
   8  32   1   8
   9   0   6  36
   9   0  34   7
   9   1   4  37
   9   1  32   8
   9   2   2  38
   9   2  30   9
   9   3   0  39
   9   3  28  10
   9   4  26  11
   9   5  24  12
   9   6  22  13
   9   7  20  14
   9   8  18  15
   9   9  16  16
   9  10  14  17
   9  11  12  18
   9  12  10  19
   9  13   8  20
   9  14   6  21
   9  15   4  22
   9  16   2  23
   9  17   0  24
   9  22  18   0
   9  23  16   1
   9  24  14   2
   9  25  12   3
   9  26  10   4
   9  27   8   5
   9  28   6   6
   9  29   4   7
   9  30   2   8
   9  31   0   9
  10   0   3  38
  10   0  31   9
  10   1   1  39
  10   1  29  10
  10   2  27  11
  10   3  25  12
  10   4  23  13
  10   5  21  14
  10   6  19  15
  10   7  17  16
  10   8  15  17
  10   9  13  18
  10  10  11  19
  10  11   9  20
  10  12   7  21
  10  13   5  22
  10  14   3  23
  10  15   1  24
  10  20  19   0
  10  21  17   1
  10  22  15   2
  10  23  13   3
  10  24  11   4
  10  25   9   5
  10  26   7   6
  10  27   5   7
  10  28   3   8
  10  29   1   9
  11   0   0  40
  11   0  28  11
  11   1  26  12
  11   2  24  13
  11   3  22  14
  11   4  20  15
  11   5  18  16
  11   6  16  17
  11   7  14  18
  11   8  12  19
  11   9  10  20
  11  10   8  21
  11  11   6  22
  11  12   4  23
  11  13   2  24
  11  14   0  25
  11  18  20   0
  11  19  18   1
  11  20  16   2
  11  21  14   3
  11  22  12   4
  11  23  10   5
  11  24   8   6
  11  25   6   7
  11  26   4   8
  11  27   2   9
  11  28   0  10
  12   0  25  13
  12   1  23  14
  12   2  21  15
  12   3  19  16
  12   4  17  17
  12   5  15  18
  12   6  13  19
  12   7  11  20
  12   8   9  21
  12   9   7  22
  12  10   5  23
  12  11   3  24
  12  12   1  25
  12  16  21   0
  12  17  19   1
  12  18  17   2
  12  19  15   3
  12  20  13   4
  12  21  11   5
  12  22   9   6
  12  23   7   7
  12  24   5   8
  12  25   3   9
  12  26   1  10
  13   0  22  15
  13   1  20  16
  13   2  18  17
  13   3  16  18
  13   4  14  19
  13   5  12  20
  13   6  10  21
  13   7   8  22
  13   8   6  23
  13   9   4  24
  13  10   2  25
  13  11   0  26
  13  14  22   0
  13  15  20   1
  13  16  18   2
  13  17  16   3
  13  18  14   4
  13  19  12   5
  13  20  10   6
  13  21   8   7
  13  22   6   8
  13  23   4   9
  13  24   2  10
  13  25   0  11
  14   0  19  17
  14   1  17  18
  14   2  15  19
  14   3  13  20
  14   4  11  21
  14   5   9  22
  14   6   7  23
  14   7   5  24
  14   8   3  25
  14   9   1  26
  14  12  23   0
  14  13  21   1
  14  14  19   2
  14  15  17   3
  14  16  15   4
  14  17  13   5
  14  18  11   6
  14  19   9   7
  14  20   7   8
  14  21   5   9
  14  22   3  10
  14  23   1  11
  15   0  16  19
  15   1  14  20
  15   2  12  21
  15   3  10  22
  15   4   8  23
  15   5   6  24
  15   6   4  25
  15   7   2  26
  15   8   0  27
  15  10  24   0
  15  11  22   1
  15  12  20   2
  15  13  18   3
  15  14  16   4
  15  15  14   5
  15  16  12   6
  15  17  10   7
  15  18   8   8
  15  19   6   9
  15  20   4  10
  15  21   2  11
  15  22   0  12
  16   0  13  21
  16   1  11  22
  16   2   9  23
  16   3   7  24
  16   4   5  25
  16   5   3  26
  16   6   1  27
  16   8  25   0
  16   9  23   1
  16  10  21   2
  16  11  19   3
  16  12  17   4
  16  13  15   5
  16  14  13   6
  16  15  11   7
  16  16   9   8
  16  17   7   9
  16  18   5  10
  16  19   3  11
  16  20   1  12
  17   0  10  23
  17   1   8  24
  17   2   6  25
  17   3   4  26
  17   4   2  27
  17   5   0  28
  17   6  26   0
  17   7  24   1
  17   8  22   2
  17   9  20   3
  17  10  18   4
  17  11  16   5
  17  12  14   6
  17  13  12   7
  17  14  10   8
  17  15   8   9
  17  16   6  10
  17  17   4  11
  17  18   2  12
  17  19   0  13
  18   0   7  25
  18   1   5  26
  18   2   3  27
  18   3   1  28
  18   4  27   0
  18   5  25   1
  18   6  23   2
  18   7  21   3
  18   8  19   4
  18   9  17   5
  18  10  15   6
  18  11  13   7
  18  12  11   8
  18  13   9   9
  18  14   7  10
  18  15   5  11
  18  16   3  12
  18  17   1  13
  19   0   4  27
  19   1   2  28
  19   2   0  29
  19   2  28   0
  19   3  26   1
  19   4  24   2
  19   5  22   3
  19   6  20   4
  19   7  18   5
  19   8  16   6
  19   9  14   7
  19  10  12   8
  19  11  10   9
  19  12   8  10
  19  13   6  11
  19  14   4  12
  19  15   2  13
  19  16   0  14
  20   0   1  29
  20   0  29   0
  20   1  27   1
  20   2  25   2
  20   3  23   3
  20   4  21   4
  20   5  19   5
  20   6  17   6
  20   7  15   7
  20   8  13   8
  20   9  11   9
  20  10   9  10
  20  11   7  11
  20  12   5  12
  20  13   3  13
  20  14   1  14
  21   0  26   2
  21   1  24   3
  21   2  22   4
  21   3  20   5
  21   4  18   6
  21   5  16   7
  21   6  14   8
  21   7  12   9
  21   8  10  10
  21   9   8  11
  21  10   6  12
  21  11   4  13
  21  12   2  14
  21  13   0  15
  21  27   0   0
  22   0  23   4
  22   1  21   5
  22   2  19   6
  22   3  17   7
  22   4  15   8
  22   5  13   9
  22   6  11  10
  22   7   9  11
  22   8   7  12
  22   9   5  13
  22  10   3  14
  22  11   1  15
  22  25   1   0
  23   0  20   6
  23   1  18   7
  23   2  16   8
  23   3  14   9
  23   4  12  10
  23   5  10  11
  23   6   8  12
  23   7   6  13
  23   8   4  14
  23   9   2  15
  23  10   0  16
  23  23   2   0
  23  24   0   1
  24   0  17   8
  24   1  15   9
  24   2  13  10
  24   3  11  11
  24   4   9  12
  24   5   7  13
  24   6   5  14
  24   7   3  15
  24   8   1  16
  24  21   3   0
  24  22   1   1
  25   0  14  10
  25   1  12  11
  25   2  10  12
  25   3   8  13
  25   4   6  14
  25   5   4  15
  25   6   2  16
  25   7   0  17
  25  19   4   0
  25  20   2   1
  25  21   0   2
  26   0  11  12
  26   1   9  13
  26   2   7  14
  26   3   5  15
  26   4   3  16
  26   5   1  17
  26  17   5   0
  26  18   3   1
  26  19   1   2
  27   0   8  14
  27   1   6  15
  27   2   4  16
  27   3   2  17
  27   4   0  18
  27  15   6   0
  27  16   4   1
  27  17   2   2
  27  18   0   3
  28   0   5  16
  28   1   3  17
  28   2   1  18
  28  13   7   0
  28  14   5   1
  28  15   3   2
  28  16   1   3
  29   0   2  18
  29   1   0  19
  29  11   8   0
  29  12   6   1
  29  13   4   2
  29  14   2   3
  29  15   0   4
  30   9   9   0
  30  10   7   1
  30  11   5   2
  30  12   3   3
  30  13   1   4
  31   7  10   0
  31   8   8   1
  31   9   6   2
  31  10   4   3
  31  11   2   4
  31  12   0   5
  32   5  11   0
  32   6   9   1
  32   7   7   2
  32   8   5   3
  32   9   3   4
  32  10   1   5
  33   3  12   0
  33   4  10   1
  33   5   8   2
  33   6   6   3
  33   7   4   4
  33   8   2   5
  33   9   0   6
  34   1  13   0
  34   2  11   1
  34   3   9   2
  34   4   7   3
  34   5   5   4
  34   6   3   5
  34   7   1   6
  35   0  12   1
  35   1  10   2
  35   2   8   3
  35   3   6   4
  35   4   4   5
  35   5   2   6
  35   6   0   7
  36   0   9   3
  36   1   7   4
  36   2   5   5
  36   3   3   6
  36   4   1   7
  37   0   6   5
  37   1   4   6
  37   2   2   7
  37   3   0   8
  38   0   3   7
  38   1   1   8
  39   0   0   9
时间: 2024-08-02 09:19:12

[C][算法][穷举]求31a + 30b + 29c + 28d = 1461的非负整数解的相关文章

[C++11][算法][穷举]输出背包问题的所有可满足解

关于背包问题的题目,前人之述备矣,这里只讨论实现 输入: n ca w_1 v_1 w_2 v_2 ... w_n v_n 其中,n是物品总数,ca是背包大小,w_n是第n个物品的重量,v_n是第n个物品的价值 输出: v_1 x v_2 x v_3 x ... 其中,v_n是当前情况为x时背包的价值,x是一串序列,由0,1组成,表示是否放入背包 如: 1001就表示第一个和最后一个物品放入背包,中间两个物品不放入 要求编写一个程序,输出所有可满足解. 思路很简单,就是穷举.穷举每一个情况. 伪

1-5、算法设计常用思想之穷举法

穷举法又称穷举搜索法,是一种在问题域的解空间中对所有可能的解穷举搜索,并根据条件选择最优解的方法的总称.数学上也把穷举法称为枚举法,就是在一个由有限个元素构成的集合中,把所有元素一一枚举研究的方法. 使用穷举法解决问题,基本上就是以下两个步骤: • 确定问题的解(或状态)的定义.解空间的范围以及正确解的判定条件: • 根据解空间的特点来选择搜索策略,逐个检验解空间中的候选解是否正确: 解空间的定义解空间就是全部可能的候选解的一个约束范围,确定问题的解就在这个约束范围内,将搜索策略应用到这个约束范

基本算法之穷举算法

穷举算法的思想:从所有的可能的情况搜索正确的答案,其中执行的步骤: 对于一种可能的情况,计算其中的结果. 如果判断的结果的不符合要求就执行第一步来搜索下一个可能的情况 package Main; import java.util.Scanner; public class demo2 { /** * 穷举算法求解鸡兔同笼 * @param args */ static int chichen,habbit; public static void main(String[] args) { int

算法基础一 穷举法

/*穷举法*/ /*鸡兔同笼35头,94足,鸡兔各几只?*/ #include<stdio.h> const int Num = 35; const int Foots = 94; int main() { int cN;//鸡 int rN;//兔 for (cN = 0; cN <= 35; cN++) { rN = Num - cN; if (Foots == cN * 2 + rN * 4 ) { printf("鸡:%d,兔:%d\n",cN,rN); }

穷举递归和回溯算法终结篇

穷举递归和回溯算法 在一般的递归函数中,如二分查找.反转文件等,在每个决策点只需要调用一个递归(比如在二分查找,在每个节点我们只需要选择递归左子树或者右子树),在这样的递归调用中,递归调用形成了一个线性结构,而算法的性能取决于调用函数的栈深度.比如对于反转文件,调用栈的深度等于文件的大小:再比如二分查找,递归深度为O(nlogn),这两类递归调用都非常高效. 现在考虑子集问题或者全排列问题,在每一个决策点我们不在只是选择一个分支进行递归调用,而是要尝试所有的分支进行递归调用.在每一个决策点有多种

Java小例子——穷举质数,求平方和,求质因子。

求平方和 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 public static void main(String[] args) throws IOException     {         int n;         String s;         BufferedReader buf;         buf=new BufferedReader(new In

【算法设计与分析基础】8、穷举 旅行商问题

package cn.xf.algorithm.ch03; import java.util.LinkedList; import org.apache.commons.lang.StringUtils; import org.junit.Test; /** * * 功能:穷举 旅行商问题 * @author xiaofeng * @date 2017年4月26日 * @fileName TravelingSalesmanProblem.java * */ public class Travel

c语言求两个数的最大公因数(穷举法,欧几里得算法,递归)

/*主函数Gcd为求公因数的函数输入为负时返回-1*/ int main(){   int a, b;  printf("Input a,b:");  scanf("%d,%d",&a,&b);  if (a < 0 || b < 0)   printf("Input number should be positive!\n");  else  printf("Greatest Common Divisor

穷举算法思想

穷举算法的基本思想就是从所有可能的情况中搜索正确的答案,在使用穷举算法时,需要明确问题的答案的范围,在范围中搜索出每一种答案,得到你最想要的答案 1. 对于一种可能的情况,计算出结果 2. 判断结果是否满足,不满足就继续搜索下一个答案,满足要求则表示找到一个正确答案   穷举算法实例: 鸡兔同笼,共有35个头,94条腿,鸡兔各有多少只? (答案范围有两个, 小鸡假设有35只,兔子假设有35只) 看看算法的效果 using System; using System.Collections.Gene