の値を昇順で最適な方法で出力するよう求めるインタビューの質問に遭遇しました.eg3i * 7j
30 * 70 = 1
31 * 70 = 3
30 * 71 = 7
32 * 70 = 9
31 * 71 = 21
33 * 70 = 27
等々 ...
の値を昇順で最適な方法で出力するよう求めるインタビューの質問に遭遇しました.eg3i * 7j
30 * 70 = 1
31 * 70 = 3
30 * 71 = 7
32 * 70 = 9
31 * 71 = 21
33 * 70 = 27
等々 ...
A(i,j)=3^i * 7^j
when i != 0 and j != 0:
A(i,j)=A(i-1,j-1)*21
when i!=0 and j==0:
A(i,0)=A(i-1,0)*3
when i==0 and j!=0:
A(0,j)=A(0,j-1)*7
when i==0 and j==0:
A(0,0)=1
それらを 2 次元配列に格納して、そこから前の値を取得できます。
あなたが最適だと言うときに私が考えることができる唯一のことは、それを計算して値を表に保存することです. 次に、乗算のみを計算します
long[] threePower = new long[10];
long[] sevenPower = new long[10];
threePower[0] = sevenPower[0] = 1;
for (int i = 1; i < 10; i++)
{
threePower[i] = threePower[i - 1]*3;
sevenPower[i] = sevenPower[i - 1] * 7;
}
次に、組み合わせを印刷します