Demo entry 6334539

freq 5

   

Submitted by anonymous on Dec 05, 2016 at 22:04
Language: C. Code size: 3.1 kB.

#include <stdio.h>

void fibonacciMatrizV0(int matriz[4][4]){
	matriz[0][0] = 1;
	matriz[0][1] = 1;
	matriz[0][2] = 2;
	matriz[0][3] = 3;

	matriz[1][0] = 5;
	matriz[1][1] = 8;
	matriz[1][2] = 13;
	matriz[1][3] = 21;

	matriz[2][0] = 34;
	matriz[2][1] = 55;
	matriz[2][2] = 89;
	matriz[2][3] = 144;

	matriz[3][0] = 233;
	matriz[3][1] = 377;
	matriz[3][2] = 610;
	matriz[3][3] = 987;
}

void fibonacciMatrizV1(int matriz[4][4]){
	int x, y;
	int v1 = 0;
	int v2 = 1;
	int t;
	
	for(y=0; y<4; y++){
		for(x=0; x<4; x++){
			matriz[x][y] = v2;
			t = v2;
			v2 = v1 + v2;
			v1 = t;
		}
	}
}


void fibonacciMatrizV2(int matriz[4][4]){
	int x,y;
	matriz[0][0] = 1;
	matriz[1][0] = 1;
	matriz[2][0] = 2;
	matriz[3][0] = 3;

	for(y = 1; y < 4; y++){
		for(x = 0; x < 4; x++){
			if(x == 0){
				matriz[x][y] = matriz[2][y-1] + matriz[3][y-1];
			} else if(x == 1){
				matriz[x][y] = matriz[3][y-1] + matriz[0][y];
			} else {
				matriz[x][y] = matriz[x-2][y] + matriz[x-1][y];
			}
		}
	}	
}
void fibonacciMatrizV2_1(int matriz[4][4]){
	int x=2,y;
	matriz[0][0] = 1;
	matriz[1][0] = 1;

	for(y = 0; y < 4; y++){
		for(; x < 4; x++){
			if(x == 0){
				matriz[x][y] = matriz[2][y-1] + matriz[3][y-1];
			} else if(x == 1){
				matriz[x][y] = matriz[3][y-1] + matriz[0][y];
			} else {
				matriz[x][y] = matriz[x-2][y] + matriz[x-1][y];
			}
		}
		x = 0;
	}	
}

int mod(int x, int y){ //só é preciso para o V3
	int r = x%y;
	return r < 0 ? r + y : r;
}
void fibonacciMatrizV3(int matriz[4][4]){
	int x,y;
	matriz[0][0] = 1;
	matriz[1][0] = 1;
	matriz[2][0] = 2;
	matriz[3][0] = 3;

	for(y=1; y<4; y++){
		for(x=0; x<4; x++){
			matriz[x][y] = matriz[mod((x-2),4)][(x-2 < 0)? y-1 : y] + matriz[mod((x-1),4)][(x-1 < 0)? y-1 : y];
		}
	}
}

void fibonacciMatrizV3_1(int matriz[4][4]){
	int x=2,y;
	matriz[0][0] = 1;
	matriz[1][0] = 1;

	for(y=0; y < 4; y++){
		for(; x < 4; x++){
			matriz[x][y] = matriz[mod((x-2),4)][(x-2 < 0)? y-1 : y] + matriz[mod((x-1),4)][(x-1 < 0)? y-1 : y];
		}
		x = 0;
	}
}

float mediaImpar(int array[4][4]){
	int x,y;
	float soma = 0;
	float n = 0;

	for(y=0; y<4; y++){
		for(x=0; x<4; x++){
			if (array[x][y]%2 != 0){
				soma += array[x][y]; // soma = soma + array[x][y]
				n++; // n = n +1
			}
		}
	}
	return (n == 0)? 0 : soma/n; // dividir por 0 dá erro em runtime
}

int main(){
	int arrayV0[4][4];
	int arrayV1[4][4];
	int arrayV2[4][4];
	int arrayV2_1[4][4];
	int arrayV3[4][4];
	int arrayV3_1[4][4];

	fibonacciMatrizV0(arrayV0);
	fibonacciMatrizV1(arrayV1);
	fibonacciMatrizV2(arrayV2);
	fibonacciMatrizV2_1(arrayV2_1);
	fibonacciMatrizV3(arrayV3);
	fibonacciMatrizV3_1(arrayV3_1);
	
	printf("Media impar: %f\n", mediaImpar(arrayV0));
	printf("Media impar: %f\n", mediaImpar(arrayV1));
	printf("Media impar: %f\n", mediaImpar(arrayV2));
	printf("Media impar: %f\n", mediaImpar(arrayV2_1));
	printf("Media impar: %f\n", mediaImpar(arrayV3));
	printf("Media impar: %f\n", mediaImpar(arrayV3_1));
}

This snippet took 0.02 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).