求助,这个路径打印不出来
  • 板块学术版
  • 楼主dfxgbm
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/1/17 17:12
  • 上次更新2023/11/5 04:43:58
查看原帖
求助,这个路径打印不出来
468029
dfxgbm楼主2021/1/17 17:12

问题描述:有一个方格图形,假设从第a行第b列开始,每步只能往左、右、上三个方向走,只能走n步,问有多少种走法。

输入:三个整数a,b,n(1<=a,b<100,n<=30)

输出:每种走法(各占一行)和走法总数(单独占一行)左、右、上三种走法分别用L R U表示。

这个路径是我加的,原题只要求走法数,现在走法数没错,但路径就是整不出来,自己在纸上画了一下大概知道错在哪了,但不知道怎么改。

本人最近刚入门,大佬勿喷……

#include <cstdio>
#include <algorithm>
#define M 100

using namespace std;
int vis[M][M];
long long int cnt=0;
void way(int i,int j,int n){
    if(vis[i][j])
        return;
    if(n==0){
        printf("\n");
        cnt++;
        return;
    }
    vis[i][j]=1;
    if(!vis[i][j-1]&&j>=2){
        printf("L");
        way(i,j-1,n-1);
    }
    if(!vis[i][j+1]);{
        printf("R");
        way(i,j+1,n-1);
    }
    if(!vis[i-1][j]&&i>=2){
        printf("U");
        way(i-1,j,n-1);
    }
    vis[i][j]=0;
}

int main(){
    int a,b,n; //a,b:起始行列号,n:允许走的步数
    for(int i=1;i<=M;i++)
        fill(vis[i],vis[i]+M,0);
    scanf("%d%d%d",&a,&b,&n);
    way(a,b,n);
    printf("%I64d",cnt);
    return 0;
}

2021/1/17 17:12
加载中...