砝碼稱重(三進製)

2022-08-24 18:24:13 字數 916 閱讀 7463

題目描述

5個砝碼

用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。

如果只有5個砝碼,重量分別是1,3,9,27,81。則它們可以組合稱出1到121之間任意整數重量(砝碼允許放在左右兩個盤中)。

本題目要求程式設計實現:對使用者給定的重量,給出砝碼組合方案。

輸入例如:

使用者輸入:5輸出

程式輸出:

9-3-1

樣例輸入

5

19

樣例輸出

9-3-1

27-9+1

把給出的書換成三進製,如果某一位是2,可以轉化成下一位對應的數減去這一位的數,

即三進製數121第二位是2×3^1=6,可以變為1*3^2 - 1*3^1=6。

#include #include #include #include using namespace std;

int len, n, a[20];

struct dataans[20], p[200];

int g3()

len--;

for(i=1; i<=len/2; i++)

swap(a[i], a[len-i+1]);

}int quen(int j)

j--;

if(p[j-1].d==p[j-2].d)

quen(j);

}int main()

if(a[i]==2)

}j = 0; i = 0;

p[j]=ans[i];

j++;

for(i=1; i}

printf("%d", p[0].d);

for(i=1; iprintf("\n");

}return 0;

}

砝碼稱重(三進製)

題目描述 5個砝碼 用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。如果只有5個砝碼,重量分別是1,3,9,27,81。則它們可以組合稱出1到121之間任意整數重量 砝碼允許放在左右兩個盤中 本題目要求程式設計實現 對使用者給定的重量,給出砝碼組合方案。輸入例如 使用者輸入 5輸出 程...

p1633 進製應用 砝碼稱重

描述 description 乙個天平,砝碼分別為1g 3g 9g 27g 6561g,每個砝碼只有乙個,要稱重的物品放在天平的左側,而砝碼允許放在天平的左右兩側。已知乙個物品的重量,問如何稱重?試程式設計解決 輸入格式 input format 乙個重量n 1 n 9000 輸出格式 output...

砝碼稱重 DP

砝碼稱重 問題描述 設有1g 2g 3g 5g 10g 20g的砝碼各若干枚 其總重 1000 用他們能稱出的重量的種類數。輸入檔案 a1 a2 a3 a4 a5 a6 表示1g砝碼有a1個,2g砝碼有a2個,20g砝碼有a6個,中間有空格 輸出檔案 total n n表示用這些砝碼能稱出的不同重量...