Blue Bridge Cup Exercício 1 - Cortar Macarrão

问题描述:
一根拉面,中间切一刀,可以得到2根面条。
先对折1次,中间切一刀,可以得到3根面条。
连续对折2次,中间切一刀,可以得到5根面条。那么如果连续对折10次,中间切一刀,会得到多少根面条?

Regra 1

Assumindo que o número de dobras é X , e o número de macarrão obtido após um corte no meio é Y , as seguintes regras podem ser obtidas através da observação:

Número de dobras ao meio X Número de macarrão Y lei
0 2 2 = 2
1 3 3 = 2 + 2^0
2 5 5 = 2 + 2^0 + 2^1
3 9 9 = 2 + 2^0 + 2^1 + 2^2

Escreva o código de acordo com as regras conhecidas para calcular o número de macarrão quando dobrado ao meio 10 vezes:

var count = 0; // 根数
var fold = 10;
for (let index = 0; index <= fold; index++) 
{
    
    
     if(index == 0)
     {
    
    
         count += 2;
     }
     else
     {
    
    
         count += Math.pow(2, index - 1);
     }
    console.log('===>折叠'+ index + '次,得到' + count + '根!');
}

insira a descrição da imagem aqui

Lei 2

Após observação adicional, verifica-se que o número de dobras X e o número de noodles Y obedecem a uma regra: Y = 2^x + 1, e o mesmo resultado é obtido após a execução do código:

var count = 0; // 根数
var fold = 10;
count = Math.pow(2, fold) + 1;
console.log('===> 折叠10次,得到' + count + '根面条!') ;
// ===> 折叠10次,得到1025根面条!
Método Math.pow(x, y)

O método Math.pow(x, y) é usado para cálculos exponenciais , onde o parâmetro X é a base e Y é o expoente.

Acho que você gosta

Origin blog.csdn.net/Dominic_W/article/details/129900499
Recomendado
Clasificación