亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用C解決蜂窩問題,一點沒有思路,有會的大佬可以幫忙看下嘛

用C解決蜂窩問題,一點沒有思路,有會的大佬可以幫忙看下嘛

C
a12svs 2020-03-14 18:01:54
查看完整描述

2 回答

?
Warm_Sweet

TA貢獻1條經驗 獲得超2個贊

這其實是一個斐波那契數列。

如下代碼只是我個人的想法,可能跟你想要的不太一樣,但是沒辦法,因為我也是小白,只能想到這么個不是辦法的法子。

#include <stdio.h>

int way(int a, int b)

{

???? int d, way, way0, x, i;

???? d = b - a;

???? if (d >= 0 && d <= 8)

???? {

???????? for (way = 1, way0 = 0, i = 0; i < d; i++)

???? ????????{

????????????????????x = way;

????????????????????way += way0;

????????????????????way0 = x;

??????????????}

???????? return way;

???? }

???? return 0;

}

int main()

{

???? int a, b;

???? a = 7;

???? b = 3;

???? int number = way(a, b);

???? if (number == 0)

????????????printf("%s\n", "請檢查蜂巢代號及爬行方向");

???? else

????????????printf("從%d處爬到%d處共有%d種路線\n", a, b, number);

???? return 0;

}

對于這個問題,我也很有興趣。如果你有什么想法的話,我會很樂意你分享給我的哦。

查看完整回答
2 反對 回復 2020-03-17
  • a12svs
    a12svs
    好的,我想問下為什么這個問題是斐波那契數列呢
  • Warm_Sweet
    Warm_Sweet
    斐波那契數列有這樣的特征:自第三項起,每一項都等于前兩項的和。 那么我們來看這個問題:蜜蜂只能向右走,而右邊的數一定比自己大。我們從1號開始: 蜜蜂要移動到2號蜂巢,而與2號相鄰的,且在2號左邊的只有1號,所以只有一條路。 現在蜜蜂要爬到3號的位置,與3號相鄰且在其左邊的有1號和2號,那么1→3一共有1 + 1 = 2條路(認為1→1有一條路)。 現在是4號位置:與4號相鄰且在其左邊的是2號和3號,所以一共有1→2一種+1→3兩種,三條路。 相應地,1→5則是1→3的兩種+1→4的三種,一共五種方法。 …… 上面是解釋蜂巢問題與斐波那契數列的對應關系,下面解釋原因: 以【1→5】為例:5號左邊分別是3號和4號,【3→5有】兩條路:35;345;而【4→5】只有一條路:45; 【1→3】有兩條路:13;123;【1→4】有三條路:124;134;1234; 用我們高中數學學過的排列組合法,就是【1→3】的方法數*【3→5】的方法數+【1→4】的方法數*【4→5】的方法數= 7。 但是【1→4】包含了所有1號先到號再到4號的所有方法,因此上面我們多算了345這種情況,去掉這個重復的部分,等同于【3→5】也只有一種方法,所以結果是【1→3】*1+【1→4】*1 = 5 解釋得有點復雜,甚至有點啰嗦,但是很容易看懂。
  • a12svs
    a12svs
    好的我懂啦謝謝
  • 2 回答
  • 0 關注
  • 2596 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號