94 lines
2.1 KiB
C
94 lines
2.1 KiB
C
|
|
#include <stdbool.h>
|
|
#include <assert.h>
|
|
#include <assert.h>
|
|
#include <stdio.h>
|
|
|
|
#define N(array) (sizeof(array) / sizeof(*array))
|
|
|
|
// 0 1 2 3 4 5 6 7 8 9
|
|
int a[10] = { 2, 4, 5, 7, 9, 11, 15, 17, 17, 19};
|
|
int b[10] = {10, 11, 11, 14, 14, 19, 20, 23, 26, 29};
|
|
|
|
int c[20] = {
|
|
15, 17, 19, 21, 22, 25, 26, 26, 27, 32,
|
|
33, 33, 36, 39, 42, 44, 48, 49, 49, 49
|
|
};
|
|
|
|
// [ 0] [ 1] [ 2] [ 3] [ 4] [ 5] [ 6] [ 7] [ 8] [ 9]
|
|
// 2 4 5 7 9 11 15 17 17 19
|
|
// --------------------------------------------------
|
|
// [ 0] 10 | 12 14 15 (17) 19 21 25 27 27 29
|
|
|
|
// [ 1] 11 | 13 15 16 28 20 22 26 28 28 30
|
|
|
|
// [ 2] 11 | 13 (15) 16 18 20 22 26 28 28 30
|
|
|
|
// [ 3] 14 | 16 18 19 21 23 25 29 31 31 33
|
|
|
|
// [ 4] 14 | 16 18 (19) 21 23 25 29 31 31 33
|
|
|
|
// [ 5] 19 |(21) 23 24 (26) 28 30 34 36 36 38
|
|
|
|
// [ 6] 20 |(22) 24 25 27 29 31 38 40 40 (42)
|
|
|
|
// [ 7] 23 |(25) (27) 28 30 32 34 38 40 40 (42)
|
|
|
|
// [ 8] 26 | 28 30 31 33 35 37 41 43 43 45
|
|
|
|
// [ 9] 29 | 31 (33) 34 (36) 38 40 (44) 46 46 (48)
|
|
|
|
int main()
|
|
{
|
|
puts("hello, world!");
|
|
|
|
for (int ci = 0; ci < 20; ci++)
|
|
{
|
|
int goal = c[ci];
|
|
|
|
int ai = 0, bi = 9;
|
|
|
|
while (1)
|
|
{
|
|
int sum = a[ai] + b[bi];
|
|
|
|
if (sum < goal)
|
|
{
|
|
ai++;
|
|
|
|
if (ai == 10)
|
|
break;
|
|
}
|
|
else if (sum > goal)
|
|
{
|
|
if (bi == 0)
|
|
break;
|
|
|
|
bi--;
|
|
}
|
|
else
|
|
{
|
|
assert(a[ai] + b[bi] == c[ci]);
|
|
|
|
printf("a[%2i] + b[%2i] == c[%2i] "
|
|
"(%2i + %2i == %2i)\n",
|
|
ai, bi, ci, a[ai], b[bi], c[ci]);
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|