初学小白你不知道的 C 语言经典算法 (附带答案)
前言:C语言中有有许多经典的算法,这些算法都是许多人的智慧结晶,也是编程中常用的算法,这里面包含了众多算法思想,掌握这些算法,对于学习更高级的、更难的算法都会有很大的帮助,会为自己的算法学习打下坚实的基础。
一、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(兔子的规律为数列1,1,2,3,5,8,13,21....)这也是著名的斐波那契数列。
二、1-100之间有多少个素数,并输出所有素数及素数的个数。程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
三、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6 = 1+2+3
找出10000以内的所有完数。
四、输出9*9乘法口诀。
五、编程打印杨辉三角
六、下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出。
七、实现将输入的字符串反序输出。
八、输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。
九、求近似Pi值。可以用公式(如:pi/2 = 1+1/3+1/3*2/5 + 1/3*2/5*3/7 + 1/3*2/5*3/7*4/9+.....)
十、实现字符串拷贝函数strcopy(char*src,char* dest)
下一篇:C语言经典算法问题
1、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。程序分析:采取逆向思维的方法,从后往前推断。
2、将10进制的数转换为2-16进制。
3、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
4、不依赖第三个变量,实现两个整数交换。
5、打印出三位的"水仙花数",所谓"水仙花数"是指一个N位数,其各位数字立方和等于该数。
6、求两个数的最大公约数和最小公倍数。
7、求一个数的阶乘。
8、输入某年某月某日,判断这一天是这一年的第几天?
9、获得某年、某月的最大天数。
10、判断某一年是否是闰年。
知道这十个C语言经典算法问题,可以文章下评论哦,互相学习。
版权声明: 本文为 InfoQ 作者【ShenDu_Linux】的原创文章。
原文链接:【http://xie.infoq.cn/article/14ae666283dafed37d9a9b421】。文章转载请联系作者。
评论