Primeiro guarde nas variáveis a, b e c o tamanho dos lados de um triangulo qualquer. Em seguida implemente um código no R que imprime na tela uma mensagem informando se o triângulo em questão é equilátero, isósceles ou escaleno. Teste o código implementado para diferentes valores de a, b e c.
a = 5; b = 4; c = 7
if(a+b>c & a+c>b & b+c>a){
if(a!=b & b!=c & a!=c){
print( "O triângulo é Escaleno ")
} else if(a==b & b==c){
print( "O triângulo é Equilátero ")
} else{ print("O triângulo é isósceles ") }
} else{ print("Não é Triângulo")}## [1] "O triângulo é Escaleno "
Para cada item a seguir implemente um código no R para encontrar o que se pede. Não use a função seq() ou outra parecida. Dica: Comece com um vetor nulo e use o(s) controle(s) de fluxo que achar adequado para preenchê-lo.
(a). Crie um array com os 100 primeiros múltiplos de 3.
## [1] 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54
## [19] 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99 102 105 108
## [37] 111 114 117 120 123 126 129 132 135 138 141 144 147 150 153 156 159 162
## [55] 165 168 171 174 177 180 183 186 189 192 195 198 201 204 207 210 213 216
## [73] 219 222 225 228 231 234 237 240 243 246 249 252 255 258 261 264 267 270
## [91] 273 276 279 282 285 288 291 294 297 300
(b). Crie um array com todos os múltiplos de 3 menores que 100
## [1] 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75
## [26] 78 81 84 87 90 93 96 99
(c). Crie um array com os 100 primeiros números ímpares
c = NULL; i = 1; n = 1
repeat{
if(i%%2!=0){
c[n] = i
n = n + 1
}
i = i + 1
if(length(c)>=100)
break
}; c## [1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35
## [19] 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71
## [37] 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107
## [55] 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143
## [73] 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179
## [91] 181 183 185 187 189 191 193 195 197 199
Repita cada item do Exercício 2 acima usando um controle de fluxo diferente daquele que você usou quando resolveu esse exercício.
(a). Crie um array com os 100 primeiros múltiplos de 3.
## [1] 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57
## [20] 60 63 66 69 72 75 78 81 84 87 90 93 96 99 102 105 108 111 114
## [39] 117 120 123 126 129 132 135 138 141 144 147 150 153 156 159 162 165 168 171
## [58] 174 177 180 183 186 189 192 195 198 201 204 207 210 213 216 219 222 225 228
## [77] 231 234 237 240 243 246 249 252 255 258 261 264 267 270 273 276 279 282 285
## [96] 288 291 294 297
(b). Crie um array com todos os múltiplos de 3 menores que 100.
## [1] 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75
## [26] 78 81 84 87 90 93 96 99
(c). Crie um array com os 100 primeiros números ímpares.
## [1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35
## [19] 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71
## [37] 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107
## [55] 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143
## [73] 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179
## [91] 181 183 185 187 189 191 193 195 197 199
Usando os controles de fluxo vistos em sala de aula, faça o que se pede. Dica: a partir do segundo item vai ser preciso usar dois controles de fluxo, um dentro do outro.
(a). Comece com uma matriz 10 × 10 nula. Usando um dos controles de fluxos vistos em aula, implemente um código que preencha todas as posições da primeira linha dessa matriz com o número 1.
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 1 1 1 1 1 1 1 1 1 1
## [2,] 0 0 0 0 0 0 0 0 0 0
## [3,] 0 0 0 0 0 0 0 0 0 0
## [4,] 0 0 0 0 0 0 0 0 0 0
## [5,] 0 0 0 0 0 0 0 0 0 0
## [6,] 0 0 0 0 0 0 0 0 0 0
## [7,] 0 0 0 0 0 0 0 0 0 0
## [8,] 0 0 0 0 0 0 0 0 0 0
## [9,] 0 0 0 0 0 0 0 0 0 0
## [10,] 0 0 0 0 0 0 0 0 0 0
(b). Comece com uma matriz 10 × 10 nula. Usando um dos controles de fluxos vistos em aula, implemente um código que preencha cada uma de suas linhas com o número que indica a linha em questão. Por exemplo, a primeira linha deve ser preenchida toda com o número 1, a segunda com o número 2 e assim por diante, até a décima linha que deve ser preenchida com 10.
b = matrix(0, nrow = 10, ncol = 10); l = 1; c = 1
for (l in 1:10) {
for(c in 1:10){
b[l,c] = l
}
}; b## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 1 1 1 1 1 1 1 1 1 1
## [2,] 2 2 2 2 2 2 2 2 2 2
## [3,] 3 3 3 3 3 3 3 3 3 3
## [4,] 4 4 4 4 4 4 4 4 4 4
## [5,] 5 5 5 5 5 5 5 5 5 5
## [6,] 6 6 6 6 6 6 6 6 6 6
## [7,] 7 7 7 7 7 7 7 7 7 7
## [8,] 8 8 8 8 8 8 8 8 8 8
## [9,] 9 9 9 9 9 9 9 9 9 9
## [10,] 10 10 10 10 10 10 10 10 10 10
(c). Comece com uma matriz 100 × 100 nula. Usando um dos controles de fluxos vistos em aula, implemente um código que preenche cada coluna com o número que indica a coluna em questão (análogo ao item anterior).
c = matrix(0, nrow = 100, ncol = 100); l = 1; i = 1
for (l in 1:100) {
for(i in 1:100){
c[i,l] = l
}
}; c[1:10,1:10]## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 1 2 3 4 5 6 7 8 9 10
## [2,] 1 2 3 4 5 6 7 8 9 10
## [3,] 1 2 3 4 5 6 7 8 9 10
## [4,] 1 2 3 4 5 6 7 8 9 10
## [5,] 1 2 3 4 5 6 7 8 9 10
## [6,] 1 2 3 4 5 6 7 8 9 10
## [7,] 1 2 3 4 5 6 7 8 9 10
## [8,] 1 2 3 4 5 6 7 8 9 10
## [9,] 1 2 3 4 5 6 7 8 9 10
## [10,] 1 2 3 4 5 6 7 8 9 10
(d). Agora comece com uma matriz 100 × 100 nula. Usando um dos controles de fluxos vistos em aula, implemente um código que preenche as posições em linhas pares com o número 2 e as posições em linhas ímpares com o número 1.
d = matrix(0, nrow = 100, ncol = 100); l = 1; c = 1
for (l in 1:100) {
for(c in 1:100){
if(l%%2==0){d[l,c] = 2
} else{ d[l,c] = 1 }
}
}; d[1:10,1:10]## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 1 1 1 1 1 1 1 1 1 1
## [2,] 2 2 2 2 2 2 2 2 2 2
## [3,] 1 1 1 1 1 1 1 1 1 1
## [4,] 2 2 2 2 2 2 2 2 2 2
## [5,] 1 1 1 1 1 1 1 1 1 1
## [6,] 2 2 2 2 2 2 2 2 2 2
## [7,] 1 1 1 1 1 1 1 1 1 1
## [8,] 2 2 2 2 2 2 2 2 2 2
## [9,] 1 1 1 1 1 1 1 1 1 1
## [10,] 2 2 2 2 2 2 2 2 2 2
Comece cada item a seguir com uma matriz 100 × 100 nula e não use a fução seq() ou outra parecida.
(a). Crie uma matriz diagonal 100 × 100 cujos elementos da diagonal principal são os números de 1 até 100 em ordem crescente.
a = matrix(0, nrow = 100, ncol = 100); l = 1
for (l in 1:100) {
a[l,l] = l
l = l + 1
}; a[1:10,1:10]## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 1 0 0 0 0 0 0 0 0 0
## [2,] 0 2 0 0 0 0 0 0 0 0
## [3,] 0 0 3 0 0 0 0 0 0 0
## [4,] 0 0 0 4 0 0 0 0 0 0
## [5,] 0 0 0 0 5 0 0 0 0 0
## [6,] 0 0 0 0 0 6 0 0 0 0
## [7,] 0 0 0 0 0 0 7 0 0 0
## [8,] 0 0 0 0 0 0 0 8 0 0
## [9,] 0 0 0 0 0 0 0 0 9 0
## [10,] 0 0 0 0 0 0 0 0 0 10
(b). Crie uma matriz diagonal 100 × 100 cujos elementos da diagonal principal são os números de 1 até 100 em ordem decrescente.
b = matrix(0, nrow = 100, ncol = 100); l = 1; i = 1
for (l in 100:1) {
b[i,i] = l
i = i + 1
}; b[1:10,1:10]## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 100 0 0 0 0 0 0 0 0 0
## [2,] 0 99 0 0 0 0 0 0 0 0
## [3,] 0 0 98 0 0 0 0 0 0 0
## [4,] 0 0 0 97 0 0 0 0 0 0
## [5,] 0 0 0 0 96 0 0 0 0 0
## [6,] 0 0 0 0 0 95 0 0 0 0
## [7,] 0 0 0 0 0 0 94 0 0 0
## [8,] 0 0 0 0 0 0 0 93 0 0
## [9,] 0 0 0 0 0 0 0 0 92 0
## [10,] 0 0 0 0 0 0 0 0 0 91
Usando os controles de fluxo vistos em aula crie as listas definidas em cada item a seguir. (a). L1 é uma lista com 10 posições tal que cada posição i guarda o número i.
## [[1]]
## [1] 1
##
## [[2]]
## [1] 2
##
## [[3]]
## [1] 3
##
## [[4]]
## [1] 4
##
## [[5]]
## [1] 5
##
## [[6]]
## [1] 6
##
## [[7]]
## [1] 7
##
## [[8]]
## [1] 8
##
## [[9]]
## [1] 9
##
## [[10]]
## [1] 10
(b). L2 é uma lista com 10 posições tal que cada posição i guarda um vetor de tamanho i com todas as posições iguais a 1.
## [[1]]
## [1] 1
##
## [[2]]
## [1] 2 2
##
## [[3]]
## [1] 3 3 3
##
## [[4]]
## [1] 4 4 4 4
##
## [[5]]
## [1] 5 5 5 5 5
##
## [[6]]
## [1] 6 6 6 6 6 6
##
## [[7]]
## [1] 7 7 7 7 7 7 7
##
## [[8]]
## [1] 8 8 8 8 8 8 8 8
##
## [[9]]
## [1] 9 9 9 9 9 9 9 9 9
##
## [[10]]
## [1] 10 10 10 10 10 10 10 10 10 10
(c). L3 é uma lista com 10 posições tal que cada posição i guarda um vetor com os 10 primeiros múltiplos de i.
l3 = list(); i = 1; l = 1
for (i in 1:10) {
vetor = vector(length = 10)
for (l in 1:10) {
vetor[l] = i*l
}
l3[[i]] = vetor
}; l3## [[1]]
## [1] 1 2 3 4 5 6 7 8 9 10
##
## [[2]]
## [1] 2 4 6 8 10 12 14 16 18 20
##
## [[3]]
## [1] 3 6 9 12 15 18 21 24 27 30
##
## [[4]]
## [1] 4 8 12 16 20 24 28 32 36 40
##
## [[5]]
## [1] 5 10 15 20 25 30 35 40 45 50
##
## [[6]]
## [1] 6 12 18 24 30 36 42 48 54 60
##
## [[7]]
## [1] 7 14 21 28 35 42 49 56 63 70
##
## [[8]]
## [1] 8 16 24 32 40 48 56 64 72 80
##
## [[9]]
## [1] 9 18 27 36 45 54 63 72 81 90
##
## [[10]]
## [1] 10 20 30 40 50 60 70 80 90 100
(d). L4 é uma lista com 10 posições tal que cada posição i guarda um vetor com os i primeiros múltiplos de 2.
l4 = list(); i = 1 ; l = 1
for(i in 1:10){
vetor = vector(length = i)
for (l in 1:i) {
vetor[l] = l*2
}
l4[[i]] = vetor
}; l4## [[1]]
## [1] 2
##
## [[2]]
## [1] 2 4
##
## [[3]]
## [1] 2 4 6
##
## [[4]]
## [1] 2 4 6 8
##
## [[5]]
## [1] 2 4 6 8 10
##
## [[6]]
## [1] 2 4 6 8 10 12
##
## [[7]]
## [1] 2 4 6 8 10 12 14
##
## [[8]]
## [1] 2 4 6 8 10 12 14 16
##
## [[9]]
## [1] 2 4 6 8 10 12 14 16 18
##
## [[10]]
## [1] 2 4 6 8 10 12 14 16 18 20
(e). L5 é uma lista com 10 posições tal que cada posição i guarda a matriz identidade de tamanho i×i.
l5 = list(); i = 1 ; l = 1
for (i in 1:10) {
matriz = matrix(0, nrow = i, ncol = i)
for (l in 1:i) {
matriz[l,l] = 1
}
l5[[i]] = matriz
}; l5## [[1]]
## [,1]
## [1,] 1
##
## [[2]]
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
##
## [[3]]
## [,1] [,2] [,3]
## [1,] 1 0 0
## [2,] 0 1 0
## [3,] 0 0 1
##
## [[4]]
## [,1] [,2] [,3] [,4]
## [1,] 1 0 0 0
## [2,] 0 1 0 0
## [3,] 0 0 1 0
## [4,] 0 0 0 1
##
## [[5]]
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 0 0 0 0
## [2,] 0 1 0 0 0
## [3,] 0 0 1 0 0
## [4,] 0 0 0 1 0
## [5,] 0 0 0 0 1
##
## [[6]]
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 1 0 0 0 0 0
## [2,] 0 1 0 0 0 0
## [3,] 0 0 1 0 0 0
## [4,] 0 0 0 1 0 0
## [5,] 0 0 0 0 1 0
## [6,] 0 0 0 0 0 1
##
## [[7]]
## [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,] 1 0 0 0 0 0 0
## [2,] 0 1 0 0 0 0 0
## [3,] 0 0 1 0 0 0 0
## [4,] 0 0 0 1 0 0 0
## [5,] 0 0 0 0 1 0 0
## [6,] 0 0 0 0 0 1 0
## [7,] 0 0 0 0 0 0 1
##
## [[8]]
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
## [1,] 1 0 0 0 0 0 0 0
## [2,] 0 1 0 0 0 0 0 0
## [3,] 0 0 1 0 0 0 0 0
## [4,] 0 0 0 1 0 0 0 0
## [5,] 0 0 0 0 1 0 0 0
## [6,] 0 0 0 0 0 1 0 0
## [7,] 0 0 0 0 0 0 1 0
## [8,] 0 0 0 0 0 0 0 1
##
## [[9]]
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
## [1,] 1 0 0 0 0 0 0 0 0
## [2,] 0 1 0 0 0 0 0 0 0
## [3,] 0 0 1 0 0 0 0 0 0
## [4,] 0 0 0 1 0 0 0 0 0
## [5,] 0 0 0 0 1 0 0 0 0
## [6,] 0 0 0 0 0 1 0 0 0
## [7,] 0 0 0 0 0 0 1 0 0
## [8,] 0 0 0 0 0 0 0 1 0
## [9,] 0 0 0 0 0 0 0 0 1
##
## [[10]]
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 1 0 0 0 0 0 0 0 0 0
## [2,] 0 1 0 0 0 0 0 0 0 0
## [3,] 0 0 1 0 0 0 0 0 0 0
## [4,] 0 0 0 1 0 0 0 0 0 0
## [5,] 0 0 0 0 1 0 0 0 0 0
## [6,] 0 0 0 0 0 1 0 0 0 0
## [7,] 0 0 0 0 0 0 1 0 0 0
## [8,] 0 0 0 0 0 0 0 1 0 0
## [9,] 0 0 0 0 0 0 0 0 1 0
## [10,] 0 0 0 0 0 0 0 0 0 1
Usando as listas L1 e L3 do Exercício 6, faça o que se pede.
(a). Encontre o valor da soma de todos os números guardados em L1.
## [1] 55
(b). Encontre o array tal que cada posição i guarda a soma de todos elementos guardados na posição i da lista L3.
## [1] 55 110 165 220 275 330 385 440 495 550
Usando a lista L4 do Exercício 6, faça o que se pede.
(a). Crie um array soma tal que a sua posição i guarda a soma dos elementos alocados na posição i da lista L4.
## [1] 2 6 12 20 30 42 56 72 90 110
(b). Crie um array v de "character" tal que a sua posição i guarda o objeto soma[i] concatenado com o texto "é um múltiplo de 5" se a o valor de soma[i] for um múltiplo de 5. Caso contrário, guarde na posição i de v o objeto soma[i] concatenado com "não é um múltiplo de 5". Para concatenar textos use a função paste().
i = 1 ; vetor = character(length = 10)
for(i in 1:10){
soma = sum(l4[[i]])
if(soma%%5==0){
vetor[i] = paste(soma,"é um múltiplo de 5")
} else{ vetor[i] = paste(soma,"NÃO é um múltiplo de 5") }
}; vetor## [1] "2 NÃO é um múltiplo de 5" "6 NÃO é um múltiplo de 5"
## [3] "12 NÃO é um múltiplo de 5" "20 é um múltiplo de 5"
## [5] "30 é um múltiplo de 5" "42 NÃO é um múltiplo de 5"
## [7] "56 NÃO é um múltiplo de 5" "72 NÃO é um múltiplo de 5"
## [9] "90 é um múltiplo de 5" "110 é um múltiplo de 5"
(c). A partir do array soma ou do array v criados nos itens anteriores, conte o número de arrays da lista L4 tais que a sua soma é um número múltiplos de 5. Não é para você visualizar soma ou v e contar, e sim para usar um controle de fluxo e uma variável que servirá de contador para realizar essa conta.
i = 0 ; qtd = 0
for(i in 1:10){
soma = sum(l4[[i]])
if(soma%%5==0){
qtd = qtd + 1
}
}
paste("Tem", qtd, "arrays da lista L4 tais que a sua soma é um número múltiplos de 5")## [1] "Tem 4 arrays da lista L4 tais que a sua soma é um número múltiplos de 5"
Uma progressão aritmética (p.a.) é uma sequência numérica em que cada termo, a partir do segundo, é igual à soma do termo anterior com uma constante \(r\). O número \(r\) é chamado de razão. O primeiro termo da sequência será chamado de \(x0\).
(a). Faça um código em R que cria um array y com os 100 primeiros termos da progressão aritmética cuja termo inicial é \(x0=2\) e a razão é \(r=3\).
Y = numeric(length = 100); Y[1] = 2; i = 2
repeat{
Y[i] = Y[i - 1] + 3
if(i==100)
break
i = i + 1
}; Y## [1] 2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53
## [19] 56 59 62 65 68 71 74 77 80 83 86 89 92 95 98 101 104 107
## [37] 110 113 116 119 122 125 128 131 134 137 140 143 146 149 152 155 158 161
## [55] 164 167 170 173 176 179 182 185 188 191 194 197 200 203 206 209 212 215
## [73] 218 221 224 227 230 233 236 239 242 245 248 251 254 257 260 263 266 269
## [91] 272 275 278 281 284 287 290 293 296 299
(b). Faça um código que determine a soma dos 35 primeiros termos dessa sequência. Compare o valor encontrado com o valor fornecido pela fórmula da soma de uma p.a.. Você lembra dessa fórmula?
## [1] TRUE
(c). Faça um código que conte um número de elementos em y múltiplos de 4 (lembre do comando %% visto na semana passada, que fornece o resto da divisão).
i = 1; qtd = 0
repeat{
if(Y[i]%%4==0){
qtd = qtd + 1
}
if(i==100)
break
i = i + 1
}
paste("Tem", qtd, "elementos em Y múltiplos de 4")## [1] "Tem 25 elementos em Y múltiplos de 4"
(d). Faça um código que conte um número de elementos em y múltiplos de 4 e múltiplos de 5 simultaneamente.
i = 1; qtd = 0
repeat{
if(Y[i]%%4==0 & Y[i]%%5==0){
qtd = qtd + 1
}
if(i==100)
break
i = i + 1
}
paste("Tem", qtd, "elementos em Y múltiplos de 4 e múltiplos de 5 simultaneamente")## [1] "Tem 5 elementos em Y múltiplos de 4 e múltiplos de 5 simultaneamente"
(e). Faça um código que conte um número de elementos em y múltiplos de 4 ou múltiplos de 5.
i = 1; qtd = 0
repeat{
if(Y[i]%%4==0 | Y[i]%%5==0){
qtd = qtd + 1
}
if(i==100)
break
i = i + 1
}
paste("Tem", qtd, "elementos em Y múltiplos de 4 e múltiplos de 5 simultaneamente")## [1] "Tem 40 elementos em Y múltiplos de 4 e múltiplos de 5 simultaneamente"
(f). Faça um código que cria um novo array x a partir y, como descrito a seguir. O array x guarda na posição i o mesmo elemento que y guarda em i, caso esse elemento seja um número par. Se o elemento da posição i do array y for um número ímpar, x recebe na posição i o valor 0.
X = vector(length = length(Y)); i = 1
repeat{
if(Y[i]%%2==0){
X[i] = Y[i]
} else{X[i] = 0}
if(i==100)
break
i = i + 1
}; X## [1] 2 0 8 0 14 0 20 0 26 0 32 0 38 0 44 0 50 0
## [19] 56 0 62 0 68 0 74 0 80 0 86 0 92 0 98 0 104 0
## [37] 110 0 116 0 122 0 128 0 134 0 140 0 146 0 152 0 158 0
## [55] 164 0 170 0 176 0 182 0 188 0 194 0 200 0 206 0 212 0
## [73] 218 0 224 0 230 0 236 0 242 0 248 0 254 0 260 0 266 0
## [91] 272 0 278 0 284 0 290 0 296 0
A famosa sequência de Fibonacci é definida da seguinte maneira: os dois primeiros elementos são iguais a \([1, 1]\) e a partir do terceiro elemento cada termo da sequência é definido como a soma dos dois termos anteriores. Por exemplo, o terceiro termo é \(2 (= 1 + 1)\), o quarto termo é \(3 (= 1 + 2)\), o quinto termo é \(5 (= 2 + 3)\) e assim por diante.
(a). Faça um código em R que cria um array fib_12 com os 12 primeiros números da sequência de Fibonacci.
## [1] 1 1 2 3 5 8 13 21 34 55 89 144
(b). Faça um código em R que cria um array fib_m_300 com todos os números da sequência de Fibonacci menores que 300.
fib_m_300 = c(1,1); i = 3; n = numeric()
repeat{
n = fib_m_300[i-2] + fib_m_300[i-1]
if(n>=300)
break
fib_m_300[i] = n
i = i + 1
}; fib_m_300## [1] 1 1 2 3 5 8 13 21 34 55 89 144 233
(c). Faça um código em R que retorna o número de termos da sequência de Fibonacci menores que 1.000.000. Veja que nesse caso você não precisa (e nem deve!) guardar os termos da sequência, apenas precisa contar o número de elementos.
primeiro = 1;segundo = 1;n = 0; i = 3; termos = 2; controle = TRUE; teste = 0
while(controle){
n = primeiro + segundo
if(n<1000000){
termos = termos + 1
primeiro = segundo
segundo = n
} else{controle = FALSE}
}
paste("A sequência de Fibonacci tem",termos,"menores que 1.000.000")## [1] "A sequência de Fibonacci tem 30 menores que 1.000.000"