題目描述
5個砝碼
用天平稱重時,我們希望用盡可能少的砝碼組合稱出盡可能多的重量。
如果只有5個砝碼,重量分別是1,3,9,27,81。則它們可以組合稱出1到121之間任意整數重量(砝碼允許放在左右兩個盤中)。
本題目要求程式設計實現:對使用者給定的重量,給出砝碼組合方案。
輸入例如:
使用者輸入:5輸出
程式輸出:
9-3-1
樣例輸入
5樣例輸出19
9-3-1把給出的書換成三進製,如果某一位是2,可以轉化成下一位對應的數減去這一位的數,27-9+1
即三進製數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表示用這些砝碼能稱出的不同重量...