㈠ c語言有幾種演算法,分別能解決什麼問題
迭代就是用新計算的結果去代替以前的數,能解決多個數求和,累加等問題,例如:
求1到100的和,用迭代思想;
for(i=1;i<=100;i++)
t=t+i;(用t+i代替前面的t)
冒泡就是排序,讓後面的數和前面的數比較大小,然後改變他們的順序,得到我們想要的序列,一般解決排序和找特殊數等問題,例如:
對1,4,28,67,34,56,23,46,43進行排序。
窮舉,就是舉例,窮舉法是最常見的密碼破解方法。也就是一個一個地試。例如:
密碼為123,窮舉法從1位數0開始,一直到碰對為止。
一般來說,窮舉法適用於6位以下純數字密碼,超過6位數或較復雜窮舉法就很難了,即使可以,也需要很長時間。
㈡ enum在c語言中是什麼意思
enum是計算機編程語言中的一種數據類型。
枚舉類型:在實際問題中,有些變數的取值被限定在一個有限的范圍內。例如,一個星期內只有七天,一年只有十二個月,一個班每周有六門課程等等。如果把這些量說明為整型,字元型或其它類型顯然是不妥當的。
為此,C語言提供了一種稱為「枚舉」的類型。在「枚舉」類型的定義中列舉出所有可能的取值,被說明為該「枚舉」類型的變數取值不能超過定義的范圍。應該說明的是,枚舉類型是一種基本數據類型,而不是一種構造類型,因為它不能再分解為任何基本類型。
枚舉類型定義的一般形式為:
1、enum 枚舉名{枚舉值表 };
在枚舉值表中應羅列出所有可用值。這些值也稱為枚舉元素。
例如:
該枚舉名為weekday,枚舉值共有7個,即一周中的七天。凡被說明為weekday類型變數的取值只能是七天中的某一天。
2、枚舉變數的說明
如同結構體(struct)和共用體(union)一樣,枚舉變數也可用不同的方式說明,即先定義後說明,同時定義說明或直接說明。
㈢ c語言能給個窮舉、迭代、遞推的舉例(要有分析)。。。
窮舉的意思能簡單, 就是'一個個猜過去'
比如要破解一個8位數的密碼, 就是從00000000到99999999的全部數字一個個試過去
這點數字對現在的計算機來說幾乎不要時間
迭代是指循環運算, 比如
for ( int i = 0; i < 99999999; ++i) 這個循環就叫做迭代
至於遞推, 以下抄自網路
遞推演算法是一種用若干步可重復的簡運算(規律)來描述復雜問題的方法. 遞推是序列計算機中的一種常用演算法。它是按照一定的規律來計算序列中的每個項,通常是通過計算機前面的一些項來得出序列中的指定象的值。其思想是把一個復雜的龐大的計算過程轉化為簡單過程的多次重復,該演算法利用了計算機速度快和不知疲倦的機器特點。
植樹節那天,有五位同學參加了植樹活動,他們完成植樹的棵樹都不相同。問第一位同學植了多少棵時,他指著旁邊的第二位同學說比他多植了兩棵;追問第二位同學,他又說比第三位同學多植了兩棵;... 如此,都說比另一位同學多植兩棵。最後問到第五位同學時,他說自己植了10棵。到底第一位同學植了多少棵樹?
分析:設第一位同學植樹的棵樹為a1,欲求a1,需從第五位同學植樹的棵數a5入手,根據「多兩棵」這個規律,按照一定順序逐步進行推算:
(1) a5=10;
(2) a4=a5+2=12;
(3) a3=a4+2=14;
(4) a2=a3+2=16;
(5) a1=a2+2=18;
遞推演算法以初始(起點)值為基礎,用相同的運算規律,逐次重復運算,直至運算結束。這種從「起點」重復相同的方法直至到達一定「邊界」,猶如單向運動,用循環可以實現。遞推的本質是按規律逐次推出(計算)先一步的結果。