bystartw_tw@tg says to YSITD
最早我是用 int* int* matrix (int* A, int* B) { static int[4] C = { A[0] * B[0] + A[2] * B[1], A[1] * B[0] + A[3] * B[1], A[0] * B[2] + A[2] * B[3], A[1] * B[2] + A[3] * B[3] }; return C; } int main (int argc, char* argv[]) { int[4] answer = {1,0,0,1}, temp = {1,1,1,0}; while (num > 0) { if (num % 2 == 1) answer = matrix(answer, temp); temp = matrix(temp, temp); num = static_cast<int>(num/2); } }