一个问题
Coddy 数学谜题 课程的第 9 课,共 20 课。
三角形数、 五边形数、 和六边形数(Project Euler,第 45 题)
三角形数、五边形数和六边形数由以下公式生成:
三角形数 T(n)=n(n+1)/2 1, 3, 6, 10, 15, ...
五边形数 P(n)=n(3n−1)/2 1, 5, 12, 22, 35, ...
六边形数 H(n)=n(2n−1) 1, 6, 15, 28, 45, ...
可以验证,T(1)=P(1)=H(1)=1,并且 T(285) = P(165) = H(143) = 40755。
找出下一个同时是三角形数、五边形数和六边形数的数。
挑战
困难编写函数 calc 来解决这个问题,并返回该问题的前三个解组成的向量。这意味着 [1, 40755, ...]
亲手试试
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"
int main() {
int rs = 0;
int* r = calc(&rs);
for (int i = 0; i < rs; i++) {
if (i > 0) printf(" ");
printf("%d", r[i]);
}
printf("\n");
return 0;
}
数学谜题中的所有课
自己练习: C 在线编译器