#include iostream
为珙县等地区用户提供了全套网页设计制作服务,及珙县网站建设行业解决方案。主营业务为网站设计、成都做网站、珙县网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
#include cmath
#include cstdio
using namespace std;
const int inf=0xfffffff ;
int preminv[21] ;
int ri[21],hi[21] ;
int total,floornum ;
int ans ;
int dfs (int n,int v,int s,int maxr,int maxh)
{
int res ;
int i,tmpr,tmph,tmpsum ;
if (nfloornum){
if (v==total s+ri[1]*ri[1]ans){
ans = s+ri[1]*ri[1] ;
return 1 ;
}
}
for (ri[n]=maxr-1 ; ri[n]=floornum-n+1 ; ri[n]--){
res = 2.0*(total-v)/ri[n] + ri[1]*ri[1] ;
if (res + s = ans) continue ;
for (hi[n]=maxh-1 ; hi[n]=floornum-n+1 ; hi[n]--){
if (v+ri[n]*ri[n]*hi[n]+preminv[floornum-n]total) continue ;
tmpr = ri[n] ,tmph = hi[n],tmpsum = 0 ;
for (i=n ; i=floornum ; i++){
tmpsum += tmpr*tmpr*tmph ;
tmpr-- , tmph-- ;
}
if (v+tmpsumtotal) continue ;
dfs(n+1,v+ri[n]*ri[n]*hi[n],s+2*ri[n]*hi[n],ri[n],hi[n]) ;
}
}
return 1 ;
}
int main()
{
int tmpv,tmpr,tmph ;
int i ;
tmpv=0 ;
for (i=1 ; i21 ; i++){
tmpv += i*i*i ;
preminv[i] = tmpv ;
}
while (scanf("%d%d",total,floornum)!=EOF){
ans = inf ;
tmpv = total - preminv[floornum-1] ;
if (tmpv0){
tmpr = sqrt (1.0*tmpv/floornum) + 1 ;
tmph = 1.0*tmpv/(floornum*floornum) + 1 ;
dfs(1,0,0,tmpr,tmph) ;
}
if (ans==inf){
ans = 0 ;
}
printf("%d\n",ans) ;
}
return 0;
}
1、一个函数(function)是一个可以从程序其它地方调用执行的语句块。以下是函数定义格式:
type name ( argument1, argument2, ...) statement
说明:
type 是函数返回的数据的类型
name 是函数被调用时使用的名
argument 是函数调用需要传入的参量(可以声明任意多个参量)。每个参量(argument)由一个数据类型后面跟一个标识名称组成,就像变量声明中一样(例如,int x)。参量仅在函数范围内有效,可以和函数中的其它变量一样使用, 它们使得函数在被调用时可以传入参数,不同的参数用逗号(comma)隔开.
statement 是函数的内容。它可以是一句指令,也可以是一组指令组成的语句块。如果是一组指令,则语句块必须用花括号{}括起来,这也是我们最常见到情况。其实为了使程序的格式更加统一清晰,建议在仅有一条指令的时候也使用花括号,这是一个良好的编程习惯。
2、示例:每一个C语言程序有且只有一个main函数,本身main就是一个函数。
int main()
{
return 0;
}
已知圆面积为pi
设:圆心为O,弦AB长为x,
则:
角AOB为: 2*asin(x/2)
三角形ABO面积为: sin(2*asin(x/2))/2
小扇形面积为: asin(x/2)
大扇形面积为: pi - asin(x/2)
故面积比(设为大于1的数a)为:
大扇形+三角形=pi - asin(x/2)+sin(2*asin(x/2))/2
比
小扇形-三角形=asin(x/2)-sin(2*asin(x/2))/2
pi - asin(x/2) + sin(2*asin(x/2))/2 = a*asin(x/2) - a*sin(2*asin(x/2))/2
...
差不多了,剩下楼主自己推一下然后编程求解吧:)
需要图形包比如opengl,当然可以做动的。不过干嘛这么麻烦呢,随便用个建模软件做不是更方便