[解题报告]10499 - The Land of Justice
题目大意
题目原文:http://uva.onlinejudge.org/external/104/10499.pdf
背景:
在公平国内每件东西的售价都是固定的。没有人能够买入一个东西后用2倍的价钱卖出去。但是这也产生了市场问题,大家都不做生意而跑去做制造了。所以过了不久之后,每个人都在制造东西,但却没有人在做生意。这使得人们没有办法得到日常所需,虽然这个国家在各方面都可以自给自足。
政府变的非常紧张了,他们找来了数学家们。数学家们提供了一个解决方案。他们建议卖东西时不以体积计价,而以表面积计价。
现在,政府要求程序设计师建立所需软件来计算利润。
你的任务就是计算卖一东西(固体的球体)的利润。商人买来一个球体然后把它切割成相等的 n 等分出售。所有的切割一定都通过球体的轴心,如下图一般:
输入
输入含有多组测试数据。每组测试数据一列含有一正整数 n(0 < N < 2^31)。
若 n 为负数,代表输入结束,请参考Sample Input。
输出
对每组测试数据输出一列,输出商人将一实体圆球切割成相等的 n 等分后,可以获得的利润。以百分比表示,四舍五入到整数字数。
Sample input
2
2
-1
Sample output
50%
50%
算法:
我的想法是,初始球的表面积4*pi*r^2,当n=2时,多了2个半圆面2*pi*r^2,利润为50%,n=3时,多三个半圆面,利润为75%
所以以此类推。
一开始看成231其实就2的31次方,所以肯定贡献了一次wor的。
代码:
这里附上我的代码,你可以去这里提交你的代码验证你的代码是否正确。
#include <stdio.h> int main(void) { long n; while (scanf("%ld",&n)!=EOF) { if(n<0)break; if(n<=1&&n>=0) printf("0%%\n"); else printf("%ld%%\n",25*n); } return 0; }