python百钱买百鸡问题算法_百钱买百鸡问题的伪代码算法?
不同的編程語言,對于判斷語句,循環語句等的寫法是不一樣的。但對于同一問題,我們只關心算法,于是就提出了偽代碼,統一一下判斷語句怎么寫,循環語句怎么寫,這樣無論程序員學的是 C++,還是 JAVA,還是 python 就都可以用偽代碼來表達了。
看下維基百科的定義。偽代碼(英語:pseudocode),又稱為虛擬代碼,是高層次描述算法的一種方法。它不是一種現實存在的編程語言(已經出現了類似偽代碼的語言,參見Nuva);它可能綜合使用多種編程語言的語法、保留字,甚至會用到自然語言。
它以編程語言的書寫形式指明算法的職能。相比于程序語言(例如Java、C++、C、Delphi 等等)它更類似自然語言。它是半形式化、不標準的語言。我們可以將整個算法運行過程的結構用接近自然語言的形式(這里可以使用任何一種作者熟悉的文字,例如中文、英文,重點是將程序的意思表達出來)描述出來。使用偽代碼,可以幫助我們更好的表述算法,不用拘泥于具體的實現。
人們在用不同的編程語言實現同一個算法時意識到,他們做出來的實現(而非功能)很不同。程序員要理解一個用他并不熟悉的編程語言編寫的程序,可能是很困難的,因為程序語言的形式限制了程序員對程序關鍵部分的理解。偽代碼就這樣應運而生了。
當考慮算法功能(而不是其語言實現)時,偽代碼常常得到應用。計算機科學在教學中通常使用偽代碼,以使得所有的程序員都能理解。
比如這里的百錢買百雞問題。
for x ← 1 to 20 do
for y ← 1 to 33 do
z ← 100 - x - y
if 5 * x + 3 * y + z / 3 = 100 and z mod 3 = 0 then
output 公雞 x 只,母雞 y 只,小雞 z 只
end if
end for
end forC ++ 實現
#includeusing namespace std;
int main() {
for (int x = 1; x < 20; x++) {
for (int y = 1; y < 33; y++) {
int z = 100 - x - y;
if (5 * x + 3 * y + z / 3 == 100 && z % 3 == 0) {
cout << "公雞 " << x << " 只," << "母雞 " << y << " 只," << "小雞 " << z << " 只" << endl;
}
}
}
system("pause");
}JAVA 實現
package cc.windliang;
public class Test {
public void buy() {
for (int x = 1; x < 20; x++) {
for (int y = 1; y < 33; y++) {
int z = 100 - x - y;
if (5 * x + 3 * y + z / 3 == 100 && z % 3 == 0) {
System.out.println("公雞 " + x + " 只," + "母雞 " + y + " 只," + "小雞 " + z + " 只");
}
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stubTest t = new Test();
t.buy();
}
}python3 實現
for x in range(1,20):
for y in range(1,30):
z = 100 - x - y
if 5 * x + 3 * y + z / 3 == 100 and z % 3 == 0:
print("公雞 " + str(x) + " 只," + "母雞 " + str(y) + " 只," + "小雞 " + str(z) + " 只")
可以看到偽代碼是給人看到,并不能讓計算機去執行,而用具體語言實現的話,就可以讓他們在各自的環境下運行。
為了答題,把我壓箱底的 VS 編譯器打開了,點個贊吧 ^ ^
總結
以上是生活随笔為你收集整理的python百钱买百鸡问题算法_百钱买百鸡问题的伪代码算法?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数据分析方法五种_加速Pyt
- 下一篇: python有什么好玩的库_你知道Pyt