欢迎光临散文网 会员登陆 & 注册

自行车维修记:矩阵2点距离代码

2023-01-15 20:44 作者:平凡也要闪光  | 我要投稿

在自行车旅途中,需要计算2点之间最短距离。下面就是算法。

//

//  main.c

//  arraydigui

//

//  Created by lc2019 on 2023/1/7.

//


#include <stdio.h>

#include <math.h>

#include <string.h>

#include <stdlib.h>


static int number=0;


int a[3][3]={{2,3,0},{1,2,3},{1,0,2}};

//int a[3][3]={{2,3,0},{1,2,3}};


int getMaxSum(int sx,int sy, int tx, int ty){

    int sum1=0;

    int sum2=0;

    int sum=0;

    

    if(sx==tx && sy== ty ){

        sum = a[tx][ty];

    }else if (sx==tx && sy+1 ==ty ){

        sum = a[sx][sy]+a[tx][ty];

    }else if( sx+1==tx && sy==ty ){

        sum = a[sx][sy]+a[tx][ty];

    }

    else {

        if(sy+1>ty){

            printf("sy+1=%d\n",sy+1);

        }else{

            sum1=a[sx][sy]+getMaxSum(sx,sy+1,tx,ty);

        }

        if(sx+1>tx){

            printf("sx+1=%d\n",sx+1);

        }else{

            sum2=a[sx][sy]+getMaxSum(sx+1,sy,tx,ty);

        }

        

        sum = (sum1>sum2)?sum1:sum2;

    }

    

    number++;

    printf("第%d次调用有结果,sum=%d\n",number, sum);

    return sum;

}


int main(int argc, const char * argv[]) {


    getMaxSum(0,0,2,2);

    

    return 0;

}


自行车维修记:矩阵2点距离代码的评论 (共 条)

分享到微博请遵守国家法律