從 0,0 到(m,n)有多少種路徑,棋盤問題

2021-08-28 16:52:51 字數 1045 閱讀 1195

//#include"stdafx.h"

#include#include#include#define max 1000

int path[max][2];

int m, n;

using namespace std;

//路徑輸出

void print_path(int index)

//搜尋演算法:遞迴的思想,當前路徑要麼向右,要麼向上

void fun(int x, int y, int index,int &count)

else if (x > m || y > n)

return;

fun(x + 1, y, index + 1, count);

fun(x, y + 1, index + 1, count);

}int main()

//getchar();

return 0;

}

一般規律:從a到b,不管其如何走,必然要經過m+n個格仔。然後這m+n個格仔裡面只有兩種狀態,向上或向右;而且為到達b,必須有n個向右走,m個向上走;如此,從這m+n個格仔裡選擇n個向右走就ok了(剩下的就向上走,當然可以選擇m向上走,剩下向右走)。

答案就是:(0,0)–>(m,n)

另外:

如果當棋盤中出現了p(k,h)不能走的情況:那麼就分步驟;先算沒有p有多少種假設為:m;算出(0,0)pm1種;然後算出p(m,n)m2種;用m-(m1*m2);就是最後的種數;

即是說:用總的數目減去必須經過p的路徑,就是不需要經過p的路徑和。

從五種小球中任取三種,有多少種取法

有紅黃藍白黑五種顏色的小球若干個,每次從裡面任意取三個小球,總共有多少種取法 1.首先,題中所描述的是一次性取三種小球,所以不考慮取的順序問題,對於所給的五中球進行編號為 0,1,2,3,4,分別代表紅黃藍白黑。2.假設排列形式的取法 考慮排列順序,即每取乙個小球的概率是相等的,但是根據題意應該剔除...

從1970到指定年份有多少個閏年 快速演算法

number of leap years from 1970 up to,butnot including,the specified year expressed as the number of years since1900 define elapsed leap years y y 1 4 ...

自然數從1到n之間,有多少個數字含有1

問題明確而簡單.for迴圈肯定是不好的.用遞推方法 定義h n 從1到9999.9999 n 個 9 之間含有1的數字的個數.定義f n 為n位數中含有1的數字的個數.由定義可知 h n f 1 f 2 f 3 f n 則f 1 h 1 1 f 2 10 1 8 h 1 f 3 10 2 8 h 2...