常見的一些演算法

2021-07-11 14:54:22 字數 1624 閱讀 3044

1.判斷乙個數是否為素數(質數)

/* 判斷乙個數是否為素數  method1 */

bool judgeprime(int number)

}std::cout

<< number << " ";

return

true;

}/* 判斷乙個數是否為素數 method2 */

bool judgeprime2(int number)

}std::cout

<< number << " ";

return

true;

}

2.計算乙個數的階乘

long jiecheng(int number)

return res;

}/* method2:利用遞迴的方式*/

long jiecheng2(int number)

if (number == 1)

return

number*jiecheng2(number-1);}

3.百錢買白雞的問題:

雄雞7元1只,母雞5元1值,小雞1元3只。花100元錢買100隻雞,如果雄雞、母雞、小雞都必須有,則雄雞、母雞和小雞各買幾隻?

void calculateji()

if (cock+hen+chick-100)

if (chick%3)

std:

:cout<<"cock:"

<", hens:"

<",chicks:"

<<

100-cock-hen<:endl;}}

}}

4.列印出所有的對稱的3位數的素數

bool judegeprime(int number)

}return

true;

}void printprime()}}

}

5.猴子吃桃問題:

猴子第一天摘下桃子若干,吃了一半又多吃乙個。第二天早上又將剩下的桃子吃掉一半又多吃乙個。以後每天早上都吃了前1天剩下桃子的一半再多吃1個。到第10天早上再想吃的時候,猴寶寶發現只剩下1個桃子了。求第一天猴子摘下多少桃子?

/* 前一天剩餘的桃子樹 = (後一天剩餘的桃子樹 +1)* 2  */

int getmonkeypatch()

return res;

}/* 遞迴演算法 */

int getmonkeypatch2(int day)

return (getmonkeypatch2(day + 1) +1) * 2;

}

6.兌換錢的問題:

100元錢兌換成10元、5元、1元,程式設計求不同的兌法數。要求每種兌法中都有10元、5元和1元 .

/*

10元的兌換範圍是: 1-9

5元的兌換範圍是: 1-17

1元的兌換範圍是: 1-85

*/void getduihuanshu()

std::cout

<<"ten:"

<",five:"

<",one:"}}

}}

一些常見演算法題目

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。class solution int pop ielement stack2.top stack2.pop return ielement private stackstack1 stackstack2 輸入某二叉樹的...

一些常見的排序演算法

為了便於說明,假設是公升序排列,降序容易以此推斷 1 選擇排序 查詢數列 含n個數 中的最大項並把它與最後一項交換,然後查詢數列前n 1項中的最大項,並把它與這n 1項的最後一項交換,以此類推。2 氣泡排序 比較相鄰的兩項資料,如果次序顛倒則交換之,最多需要比較n 1趟。第一趟結束,最大項已經到末尾...

一些常見的排序演算法

複雜度為n 2的排序 常見的有 插入排序 氣泡排序 選擇排序 地精排序,是插入排序的另一種寫法,可以只用乙個迴圈 public static int charu int ins else return ins public static int int in return in public sta...