首页 > 学院 > 开发设计 > 正文

路径输出问题

2019-11-06 08:25:05
字体:
来源:转载
供稿:网友

在坐标系中,从(0,0)到(m,n),每次走一步,只能向上或者向右走,有多少种路径走到(m,n)(0,0) ->(2,2)

 

0.0- >1.0 ->2.0 ->2,1 ->2,2       1

 

0,0->1.0->1,1 ->2.1->2.2    2

 

0.0 -> 1.0 ->.1,1->1,2->2,2   3

 

0.0 -> 0.1- >0.2- >1.2 ->2.2   4

 

0.0 ->0.1 ->1.1->1.2->2.2  5

 

f(m,n)

#include<stdio.h>#include<stdlib.h>//在坐标系内只能向上或者向右typedef struct node{	int x, y;}node;int cnt;node nd[100];int ff(int a, int b, int x, int y, int step){	int i;	if (a == x && b == y)	{		cnt++;		for (i = 0; i <= step; i++)		{			PRintf("(%d,%d) ", nd[i].x, nd[i].y);		}		printf("/n");		return ;	}	else	{		if (x < a && y <= b)		{			nd[step + 1].x = x + 1;			nd[step + 1].y = y;			ff(a, b, x + 1, y, step + 1);		}		if (y < b  && x <= a)		{			nd[step + 1].x = x;			nd[step + 1].y = y + 1;			ff(a, b, x, y + 1, step + 1);		}	}}int main(){	int a, b ;	while (scanf("%d%d", &a, &b) != EOF)	{		cnt = 0;        nd[0].x = nd[0].y = 0;		ff(a, b, 0, 0, 0);		printf("路径总数为:%d/n", cnt);	}	system("pause");}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表