首先,感谢您的阅读。我正在尝试制作一个"noob“程序,我想使用一个注册码。为了完成我的加密算法,我需要生成所有4x4矩阵,其中只包含从0到9的数字,如下面的示例所示:
4 4 6 8
5 2 4 3
8 5 2 9
2 7 2 6
我知道有很多这样的组合,但这并不能阻止我。我试着用"for“来做这件事,但我弄不明白。
发布于 2011-06-24 01:20:05
我会将4x4位数矩阵存储为char16,将前四个字符解释为第一行,将接下来的四个字符解释为第二行,依此类推。您可以通过递归轻松地生成所有可能的值,并在每个级别上使用for循环。
void print_all_possible_matrices(char *matrix, int level) {
if(level == 16) {
print_matrix(matrix);
}
for(int i = 0; i < 10; ++i) {
matrix[level] = i;
print_all_possible_matrices(matrix, level + 1);
}
}您可以通过以下方式使用它:
int main() {
char matrix[16];
print_all_possible_matrices(matrix, 0);
}但这将需要很长时间才能完成。
https://stackoverflow.com/questions/6457824
复制相似问题