标题:求助 关于c语言设计切蛋糕的问题
只看楼主
dlwlrma
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-12-19
结帖率:0
已结贴  问题点数:20 回复次数:2 
求助 关于c语言设计切蛋糕的问题
搜索更多相关主题的帖子: c语言 设计 
2019-12-19 23:19
dlwlrma
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-12-19
得分:0 
这个我也做了一个函数表达的  但是有哪里出了问题
2019-12-19 23:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
打酱油,说个题外话,假如不按照题目的要求去做的话:
    设输入比例为 a : b
    先计算出 θ,使得 θ- sinθ = 2*M_PI*a/(a+b)
    然后弦长等于 sqrt( 2 - 2*cosθ )

程序代码:
#include <stdio.h>
#define _USE_MATH_DEFINES // for VC
#include <math.h>

double arc_length( unsigned a, unsigned b )
{
    const double temp = 2*M_PI*a/(a+b);
    double x_lo=0, x_hi=2*M_PI;
    double y_lo=0, y_hi=2*M_PI;
    while( x_hi-x_lo > 0.000001 )
    {
        double x = (x_lo+x_hi)/2;
        double y = x - sin(x);
        if( y < temp )
        {
            x_lo = x;
            y_lo = y;
        }
        else
        {
            x_hi = x;
            y_hi = y;
        }
    }
    return sqrt(2-2*cos(x_lo));
}

int main( void )
{
    printf( "%f\n", arc_length(1,1) );
    printf( "%f\n", arc_length(1,2) );
    printf( "%f\n", arc_length(10,1) );
}

2019-12-20 09:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498511-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.973324 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved