C++题目描述过年了可多要去给朋友送礼物。可多准备了若干个礼盒到达第一个朋友家时送出礼盒总数的二分之一这家主人还会回礼两份到达第二个朋友家时送出余下的二分之一并收获两个礼盒以此类推直到最后一个朋友家送出去 m 份结束。已知共有 n 家要保证每家朋友都能得到相应数量的礼盒那么最初需要至少准备多少呢?输入描述两个整数分别表示朋友家的个数 n 和最后一次送出的礼物份数 m。5=n=501=m=10输出描
解答思路: 根据题目描述,到达第一个朋友家时送出礼盒总数的二分之一,并收获两个礼盒。 到达第二个朋友家时送出余下的二分之一,并收获两个礼盒。 以此类推,直到最后一个朋友家送出去 m 份结束。
假设最初准备的礼盒数量为x,则第一个朋友家收到了x/2个礼盒,总共送出了x/2个礼盒,收获了x/2个礼盒。 第二个朋友家收到了x/4个礼盒,总共送出了x/4个礼盒,收获了x/4个礼盒。 以此类推,第i个朋友家收到了x/(2^i)个礼盒,总共送出了x/(2^i)个礼盒,收获了x/(2^i)个礼盒。
根据题目要求,最后一个朋友家送出了m份礼物,即x/(2^n) = m,可以求出x的值。
最初需要准备的礼盒数量为x = 2^n * m
因此,最初需要准备的礼盒数量为2^n * m。
原文地址: https://www.cveoy.top/t/topic/ie5V 著作权归作者所有。请勿转载和采集!