コード例 #1
0
void trace_route(CommonType t[ACTIVITY_COUNT][ACTIVITY_COUNT],
        CommonType i,
        CommonType j,
        ElementType* result)
{
    if (i < j) {
        if (t[i][j] != 0)
            *result++ = t[i][j];
        trace_route(t, i, t[i][j], result);
    }
}
コード例 #2
0
ファイル: problem_18.c プロジェクト: bill1118qq/Project_Euler
int main(void) {
	int triangle[15][15], biggest = 0;
	route_t route;
	puts("Hello World"); /* prints Hello World */

	memset(triangle, 0, sizeof(int) * 15 * 15);
	read_triangle(triangle);

	trace_route(triangle, 0, 0, 0, &biggest, &route);

	return EXIT_SUCCESS;
}
コード例 #3
0
ファイル: problem_18.c プロジェクト: bill1118qq/Project_Euler
void trace_route(int triangle[][15], int i, int j, int sum, int *biggest, route_t *route)
{

	route->node_array[i].i = i;
	route->node_array[i].j = j;

	if (i == 14)
	{
		sum += triangle[i][j];
		if (*biggest < sum)
			*biggest = sum;
		printf("sum = %d, i=%d, j=%d, biggest = %d\n", sum, i, j, *biggest);
		print_route(route);
		return;
	}

	trace_route(triangle, i + 1, j, sum + triangle[i][j], biggest, route);
	trace_route(triangle, i + 1, j + 1, sum + triangle[i][j], biggest, route);

	return ;
}
コード例 #4
0
int main(void) {
    activity_selector(s, f, ACTIVITY_COUNT, c, t);
    // output result
    trace_route(t, 0, ACTIVITY_COUNT - 1, result_index);
    printf("result = ");
    ElementType* result = result_index;
    while(*(result) != 0) {
        printf("%3d ", *result++);
    }
    printf("\n");
    return EXIT_SUCCESS;
}