今日はさえ、次はそれを考えていませ果たしていませんでした
それは実際には非常に簡単です。
例えば:
$ 64 = 2 \回3 ^ 3 + 1 \回3 ^ 2 + 3 ^ 0 $
ホーナー法、すなわち$ 3(2 \回3 ^ 2 + 1 \回3 ^ 1)+ 1 = 64 $、あたり提案3
目に見えるだけで、3以上のものを取るために最も低い係数を取得する必要があります
Nは、上記の手順を繰り返し、3で割りました。
する#include <stdio.hの> ボイドシフト(整数 nは、INT P) //は、P-N進に変換され、{ 一方(N) { のprintf(" %のD "、N%のP); // ローからハイ出力に = N-N- / P; } } ボイド SHIFT2(INT N-、INT P) // 強制的に再帰的に記述された、HH { IF(N - == 0) リターン; のprintf(" %のD "、N-%のP); SHIFT2(N / P、P); } int型のmain() { シフト(64、3)。 // 1 0 1 2 }