Hey guys,
I need help on this problem I'm working on. Details on the
problem are in the comment section at the beginning of the
code. I started off making the list of numbers into a string.
From the string, I'm trying to convert the numbers into
integers and putting them inside a 20by20 array, so it can
look like the grid shown in the comments. My problem, as you
can see in the output, is that the integers at the end of every
row got converted wrong somehow. Please show me what is wrong
with my code.
ps. I do not want answers to the problem; I think I can solve it
myself. I just need hints to fix this problem of mine, so I can
continue the rest of the code myself.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
//Largest Product in a Grid
/*In the 2020 grid below, four numbers along a diagonal line have been marked in red.
08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48
The product of these numbers is 26 63 78 14 = 1788696.
What is the greatest product of four adjacent numbers in the same direction (up, down, left, right, or diagonally) in the 2020 grid?*/
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
int numconvert(string a, int b);
void numsingrid(string a, int b[19][19]);
int main()
{
string nums = "08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66 88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69 04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36 20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16 20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54 01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48 ";
int grid[19][19];
numsingrid(nums, grid);
for(int i = 0; i < 20; i++){
for(int j = 0; j < 20; j++) {
cout << grid[i][j] << " ";
}
cout << endl;
}
system("PAUSE");
return 0;
}
int numconvert(string a, int b)
{
int num = ((a[b - 3] - 48) * 10) + (a[b - 2] - 48);
return num;
}
void numsingrid(string a, int b[19][19])
{
int num, counter = 1;
for(int i = 0; i < 20; i++) {
for(int j = 0; j < 20; j++) {
b[i][j] = numconvert(a,(counter * 3));
++counter;
}
}
}
| |
8 2 22 97 38 15 0 40 0 75 4 5 7 78 52 12 50 77 91 49
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 4 56 62 81
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 3 49 13 36 52
52 70 95 23 4 60 11 42 69 24 68 56 1 32 56 71 37 2 36 22
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 24
24 47 32 60 99 3 45 2 44 75 33 53 78 36 84 20 35 17 12 32
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 67
67 26 20 68 2 62 12 20 95 63 94 39 63 8 40 91 66 49 94 24
24 55 58 5 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 21
21 36 23 9 75 0 76 44 20 45 35 14 0 61 33 97 34 31 33 78
78 17 53 28 22 75 31 67 15 94 3 80 4 62 16 14 9 53 56 16
16 39 5 42 96 35 31 47 55 58 88 24 0 17 54 24 36 29 85 86
86 56 0 48 35 71 89 7 5 44 44 37 44 60 21 58 51 54 17 19
19 80 81 68 5 94 47 69 28 73 92 13 86 52 17 77 4 89 55 4
4 52 8 83 97 35 99 16 7 97 57 32 16 26 26 79 33 27 98 88
88 36 68 87 57 62 20 72 3 46 33 67 46 55 12 32 63 93 53 4
4 42 16 73 38 25 39 11 24 94 72 18 8 46 29 32 40 62 76 20
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 4 36 20
20 73 35 29 78 31 90 1 74 31 49 71 48 86 81 16 23 57 5 1
1 70 54 71 83 51 54 69 16 92 33 48 61 43 52 1 89 19 67 48
Press any key to continue . . .
|