201301 JAVA 題目2-3級_棋盤問題

數學解題思路:

一個nXm的方格,首先,從最上角到最下角橫向走的“步數”應該是m步,而豎向走的“步數”也是n步,所以從左上角到右下角必須走n+m步。

接着,在總共n+m步中,選擇n步作爲橫向,則另外m步應該爲豎向,由排列組合有:n+m中選擇n個

或者採用遞歸

#include<iostream>
using namespace std;

int ans(int n, int m);
int main(){
    int n, m, x = 0, y = 0;
    int lines = 0, flag = 0;
    cin>>n>>m;
    cout<<ans(n, m)<<endl;

    return 0;
}
int ans(int n, int m){
    if(n <= 0 || m <= 0)
        return 0;
    else if(m == 1)
        return n + 1;
    else if(n == 1)
        return m + 1;
    else return ans(n-1, m) + ans(n, m-1);
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章