d281 - 10499 - The Land of Justice
題目描述
題目描述了一個在公平國中,由於物價固定導致交易停滯的問題。為了鼓勵交易,政府建議以表面積計價。題目要求計算將一個球體切割成 n 等分出售時,商人的利潤百分比。由於切割方式是通過球心,且切割成相等的 n 等分,因此每個小球體的表面積與原球體的表面積之比,決定了利潤。
解題思路
題目要求計算將球體切割成 n 等分後的利潤百分比。由於切割方式是通過球心,每個小球體的體積是原球體體積的 1/n。然而,題目要求的是以表面積計價,因此需要考慮表面積的變化。 切割後,每個小球體的表面積並非原球體表面積的 1/n。每個小球體除了有原球體表面積的一部分外,還多了兩個半圓形的切割面。 假設原球體的半徑為 r,則原球體的表面積為 4πr^2。 切割成 n 等分後,每個小球體的表面積為 (4πr^2)/n + 2 * (πr^2)/n = 6πr^2/n。 因此,每個小球體的表面積與原球體的表面積之比為 (6πr^2/n) / (4πr^2) = 3/(2n)。 由於題目要求計算利潤,而題目中提到沒有人能夠買入一個東西後用2倍的價錢賣出去,因此可以假設每個小球體的售價是其表面積的 25%。 所以,總利潤為 n * (3/(2n)) * 25% = 37.5%。 但題目要求四捨五入到整數位數,因此答案為 38%。 然而,題目範例輸出為 n=1 時輸出 0%,n=2 時輸出 50%,n=3 時輸出 75%。 觀察題目範例,可以發現利潤百分比等於 n * 25%。
複雜度分析
- 時間複雜度: O(1)
- 空間複雜度: O(1)
程式碼
#include<cstdio>
int main(){
long long n;
while( scanf( "%lld", &n ) != EOF && n > 0 ){
if( n == 1 )
printf( "0%%\n" );
else
printf( "%lld%%\n", n*25 );
}
return 0;
}