最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++基本算法思想之窮舉法

 更新時間:2013年10月14日 08:47:33   投稿:jingxian  
在使用窮舉法時,需要明確問題的答案的范圍,這樣才可以在指定的范圍內搜索答案。指定范圍之后,就可以使用循環(huán)語句和條件語句逐步驗證候選答案的正確性,從而得到需要的正確答案

窮舉算法(Exhaustive Attack method)是最簡單的一種算法,其依賴于計算機的強大計算能力來窮盡每一種可能性,從而達到求解問題的目的。窮舉算法效率不高,但是適應于一些沒有規(guī)律可循的場合。

窮舉算法基本思想
窮舉算法的基本思想就是從所有可能的情況中搜索正確的答案,其執(zhí)行步驟如下:

(1)對于一種可能的情況,計算其結果。

(2)判斷結果是否符合要求,如果不滿足則執(zhí)行第(1)步來搜索下一個可能的情況;如果符合要求,則表示尋找到一個正確答案。

在使用窮舉法時,需要明確問題的答案的范圍,這樣才可以在指定的范圍內搜索答案。指定范圍之后,就可以使用循環(huán)語句和條件語句逐步驗證候選答案的正確性,從而得到需要的正確答案。

窮舉算法舉例
雞兔同籠問題最早記載于1500年前的《孫子兵法》,這是一個非常有名的問題。雞兔同籠的原文如下:

今有雞兔同籠,上有三十五頭,下有九十四足,問雞兔各幾只?

這個問題的大致意思是:在一個籠子里關著若干只雞和若干只兔,從上面數共有35個頭,從下面數共有94只腳。問籠中雞和兔的數量各是多少?

窮舉算法
這個問題需要計算雞的數量和兔的數量,我們通過分析可以知道雞的數量應該在1~35之間。這樣我們可以使用窮舉法來逐個判斷是否符合,從而搜索答案。

采用窮舉法求解雞兔同籠問題的程序示例代碼如下:

復制代碼 代碼如下:

/*
輸入參數head是籠中頭的總數,foot是籠中腳的總數,chicken的總數,rabbit是兔的總數
返回結果為0,表示沒有搜索到符合條件的結果;
返回結果為1,表示搜索到了符合條件的結果
*/
int qiongju(int head,int foot,int *chicken,int * rabbit)
{
 int re,i,j;
 re=0;
 for(i=0;i<=head,i++)  //進行循環(huán)
 {
  j=head-i;
  if(i*2+j*4==foot) //進行判斷
  {
   re=1;  //找到答案
   *chicken=i;
   *rabbit=j;
  }
 }
 return re;
}

窮舉算法求解雞兔同籠問題
完整的瓊劇算法求解雞兔同籠問題的程序代碼如下:
復制代碼 代碼如下:

#include<iostream>
using namespace std;
/*
輸入參數head是籠中頭的總數,foot是籠中腳的總數,chicken的總數,rabbit是兔的總數
返回結果為0,表示沒有搜索到符合條件的結果;
返回結果為1,表示搜索到了符合條件的結果
*/
int qiongju(int head,int foot,int *chicken,int * rabbit)
{
 int re,i,j;
 re=0;
 for(i=0;i<=head;i++)  //進行循環(huán)
 {
  j=head-i;
  if(i*2+j*4==foot)  //進行判斷
  {
   re=1;    //找到答案
   *chicken=i;
   *rabbit=j;
  }
 }
 return re;
}
int main()
{
 int chicken,rabbit,head,foot;
 int re;
 cout<<"窮舉法求解雞兔同籠問題:"<<endl;
 cout<<"請輸入頭數:";
 cin>>head;
 cout<<"請輸入腳數:";
 cin>>foot;
 re=qiongju(head,foot,&chicken,&rabbit);
 if(re==1)
 {
  cout<<"雞有"<<chicken<<"只,兔有"<<rabbit<<"只。"<<endl;
 }
 else
 {
  cout<<"無法求解!"<<endl;
 }
 return 0;
}

程序中,首先由用戶輸入頭的總數和腳的總數,然后調用窮舉法求解雞兔同籠問題的函數,最后輸出結果。

執(zhí)行該程序,按照題目的要求輸入數據,輸出結果。

相關文章

  • 解析C++中的虛擬函數及其靜態(tài)類型和動態(tài)類型

    解析C++中的虛擬函數及其靜態(tài)類型和動態(tài)類型

    虛擬函數(Visual Function)亦常被成為虛函數,是C++中的一個重要特性,本文我們就來解析C++中的虛擬函數及其靜態(tài)類型和動態(tài)類型
    2016-06-06
  • 探討C語言中關鍵字volatile的含義

    探討C語言中關鍵字volatile的含義

    本篇文章是對C語言中關鍵字volatile的含義進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • c語言string.h頭文件中所有函數示例詳解

    c語言string.h頭文件中所有函數示例詳解

    這篇文章詳細介紹了C語言標準庫中的字符串和內存操作函數,以str開頭的字符串處理函數和以mem開頭的內存處理函數,每種函數都有詳細的原型、功能描述和示例代碼,需要的朋友可以參考下
    2024-11-11
  • 詳談C語言指針

    詳談C語言指針

    這篇文章主要介紹了C語言的指針,介紹了其相關概念,然后分享了幾種用法,具有一定參考價值。需要的朋友可以了解下
    2021-10-10
  • Qt實現自定義驗證碼輸入框控件的方法

    Qt實現自定義驗證碼輸入框控件的方法

    本文主要介紹了Qt實現自定義驗證碼輸入框控件的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • C語言的線性表之順序表你了解嗎

    C語言的線性表之順序表你了解嗎

    這篇文章主要為大家詳細介紹了C語言的線性表之順序表,線性表的順序表示指的是用一組地址連續(xù)的存儲單元依次存儲線性表中的數據元素,本文具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C語言 數與串之間轉換的方法

    C語言 數與串之間轉換的方法

    C語言 數與串之間轉換的方法,需要的朋友可以參考一下
    2013-05-05
  • C語言快速排序函數用法(qsort)

    C語言快速排序函數用法(qsort)

    這篇文章主要為大家詳細介紹了C語言的快排函數用法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • C++模板非類型形參的詳細講解

    C++模板非類型形參的詳細講解

    這篇文章主要給大家介紹了關于C++模板非類型形參的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作就有一定的參考學習價值,需要的朋友可以參考下
    2021-11-11
  • 如何利用OpenGL畫坐標軸指示圖

    如何利用OpenGL畫坐標軸指示圖

    C++用opengl繪制出的二維坐標,簡單明了,很容易理解,下面這篇文章主要給大家介紹了關于如何利用OpenGL畫坐標軸指示圖的相關資料,需要的朋友可以參考下
    2022-01-01

最新評論

新巴尔虎左旗| 沧州市| 比如县| 孟津县| 遂溪县| 和林格尔县| 陇南市| 丹阳市| 广汉市| 乐清市| 许昌县| 襄垣县| 大悟县| 江北区| 治县。| 洛南县| 慈溪市| 柳河县| 普兰店市| 泗水县| 康乐县| 离岛区| 喀什市| 六安市| 东台市| 南阳市| 余姚市| 西盟| 和田县| 汉中市| 渝北区| 登封市| 海伦市| 吴忠市| 繁昌县| 漳州市| 山丹县| 原阳县| 绍兴市| 涟源市| 西宁市|