栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

无限的路(C语言)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

无限的路(C语言)

这个题分为几部分

1、首先建立一个函数两点之间的距离

2、之后再建立一个函数计算到原点的距离

3、最终在主函数中只需要实现两点到原点距离相减

可以利用递推做

#include
#include
#include
#include
double dp[300][300];
//利用二维数组建立一个类似与图中的坐标图
double long(int a, int b, int c, int d) 
{
    return 1.000 * sqrt(pow((a - b), 2) + pow((c - d), 2));
}
//此函数负责运算的是二者之间的直线距离
void init() 
{
    int j = 1;
    dp[0][0] = 0;
    while (j <= 201) 
    {
        int i = 0;
        int t = j;
        while (i <= j) 
        {
            if (i == 0)
            {
                dp[0][t] = fabs(dp[t - 1][0] + long(0, t - 1, t, 0));
            }
            else
            {
                dp[i][t] = fabs(dp[i - 1][t + 1] + sqrt(2)); 
            }
            i++;
            t--;
        }
        j++;
    }
}
int main()
{
    init();
    int n;
    scanf("%d", &n);
    while (n--) 
    {
        int a, b, x, y;
        scanf("%d %d %d %d", &a, &b, &x, &y);
        printf("%.3lfn", fabs(dp[x][y] - dp[a][b]));
    }
    return 0;
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/925556.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号