獲取更多精彩文章請關注雲主宰蒼穹
引言:對於學習計算機程式語言而言,一門程式語言的經典思想是十分重要的。這是一門計算機程式語言的特色優點,是其解決問題的經典思維。你所了解的C語言,有哪些經典的編程實例思想,歡迎下方留言交流!
編程實例思想1
/*
**Function:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?
分析:三位數在個位、十位、百位都有四種排列組合,
然後再排除重複的排列組合
使用三層for循環進行排列組合,邏輯&&判斷排除重複組合
**Author:@雲主宰蒼穹
**Date:2019-02-27
*/
編程實例思想2
/*
**Function:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,
請問該數是多少?
程序分析:
假設該數為 x。
1、則:x + 100 = n2, x + 100 + 168 = m2
2、計算等式:m2 - n2 = (m + n)(m - n) = 168
3、設置: m + n = i,m - n = j,i * j =168,i 和 j 至少一個是偶數
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 都是偶數,要麼都是奇數。
5、從 3 和 4 推導可知道,i 與 j 均是大於等於 2 的偶數。
6、由於 i * j = 168, j>=2,則 1 < i < 168 / 2 + 1。
7、接下來將 i 的所有數字循環計算即可。
**Author:@雲主宰蒼穹
**Date:2019-02-28
*/
編程實例思想3
/*
**Function:輸入某年某月某日,判斷這一天是這一年的第幾天?
程序分析:以3月5號分析,應該先把前兩個月的加起來,然後在加上天數5即可;
特殊情況,判斷本年是否是閏年,是閏年則多加一天即可。
**Author:@雲主宰蒼穹
**Date:2019-03-01
*/
編程實例思想4
/*
**Function:題目:輸出9*9口訣
程序分析:考慮行與列,九行九列,row控制行,column控制列
1.左對齊
方式1
printf("%d\n",101010);
默認列印格式為左對齊;
方式2
printf("%-10d\n",101010);
在列印數字寬度前面加一個「-」。
說明:數字寬度為10,如果要列印的位數小於10,則在後面補足空格;
如果要列印的位數大於10,則列印所有的數字,不會截斷。
2.右對齊
printf("%10d",101010);
在%和d之間加上數字寬度,就可以右對齊。
說明:數字寬度為10,如果要列印的位數小於10,左邊補足空格;
如果要列印的位數大於10,則列印所有的數字,不會截斷
**Author:@雲主宰蒼穹
**Date:2019-03-02
*/
編程實例思想5
/*
**Function:古典問題(兔子生崽):有一對兔子,從出生後第3個月起每個月都生一對兔子,
小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,
問每個月的兔子總數為多少?(輸出前40個月即可)
程序分析:兔子的規律為數列1,1,2,3,5,8,13,21....,
即下個月是上兩個月之和(從第三個月開始)。
**Author:@雲主宰蒼穹
**Date:2019-03-03
*/遞歸:斐波那契數列,不建議採用這種方法。因為佔據內存資源開銷大,而且遞歸耗時。
編程實例思想6
/*
**Function:判斷1到200之間的素數。
程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),
如果能被整除, 則表明此數不是素數,反之是素數
**Author:@雲主宰蒼穹
**Date:2019-03-03
*/
編程實例思想7
/*
**Function:列印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,
其各位數字立方和等於該數 本身。例如:153是一個"水仙花數",
因為153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。
**Author:@雲主宰蒼穹
**Date:2019-03-04
*/
//三位數的拆分
singleDigit = number%10;
intermediateVariable = number/10;
tenDigit = intermediateVariable%10;
hundredsDigit = intermediateVariable/10;
這樣拆分最適合計算機硬體的要去!
編程實例思想8
/*
**Function::將一個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5。
程序分析:對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成:
(1)如果這個質數恰等於(小於的時候,繼續執行循環)n,
則說明分解質因數的過程已經結束,另外 列印出即可。
(2)但n能被k整除,則應列印出k的值,並用n除以k的商,
作為新的正整數n.重複執行第二步。
(3)如果n不能被k整除,則用k+1作為k的值,重複執行第一步
**Author:@雲主宰蒼穹
**Date:2019-03-04
*/
編程實例思想9
/*
**Function::輸入兩個正整數m和n,求其最大公約數和最小公倍數。
程序分析:
(1)最小公倍數=輸入的兩個數之積除於它們的最大公約數,關鍵是求出最大公約數;
(2)求最大公約數用輾轉相除法(又名歐幾裡德算法)
1)證明:設c是a和b的最大公約數,記為c=gcd(a,b),a>=b,
令r=a mod b
設a=kc,b=jc,則k,j互素,否則c不是最大公約數
據上,r=a-mb=kc-mjc=(k-mj)c
可知r也是c的倍數,且k-mj與j互素,否則與前述k,j互素矛盾,
由此可知,b與r的最大公約數也是c,即gcd(a,b)=gcd(b,a mod b),得證。
2)算法描述:
第一步:a ÷ b,令r為所得餘數
(0≤r 第二步:互換:置 a←b,b←r,並返回第一步。
**Author:@雲主宰蒼穹
**Date:2019-03-05
*/