收藏 分享(赏)

c语言竞赛和算法总结.doc

上传人:j35w19 文档编号:6323792 上传时间:2019-04-07 格式:DOC 页数:23 大小:97.94KB
下载 相关 举报
c语言竞赛和算法总结.doc_第1页
第1页 / 共23页
c语言竞赛和算法总结.doc_第2页
第2页 / 共23页
c语言竞赛和算法总结.doc_第3页
第3页 / 共23页
c语言竞赛和算法总结.doc_第4页
第4页 / 共23页
c语言竞赛和算法总结.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、算法集适合算法竞赛或兴趣了解2015/2/9计算机徐一粟计算机程序算法2015算法集1 适合算法竞赛或兴趣了解2 本套算法均是已实现算法3 算法均有本人查阅和自己写4 未经允许不得做为商业用途违者必究作者 徐(男)QQ:964092342目录1. 10 进制转 2 进制-42. 啤酒和饮料 -53. 圆的面积 -54. 切面条 -65. 01 字符串 -76. 字母图形 -87. 求 n 个数的最大值,最小值,和-98. 杨辉三角形 -109. (2 个数)公约数,公倍数(三种算法)-1110. 歌手大奖赛 -1611. 输出斐波那契数列第 n 项的数值-1712. 输出斐波那契数列每一项的数

2、值-1813. Fibonacci 数列其它问题-1914. 求前 n 项的和 1+2+n-2015. 序列求和 -2116. 图形显示 -2217. 星期几 -2218. 16 进制转 10 进制 -2319. 10 进制转 16 进制 -2420. 16 进制转 8 进制 -2521. 判断是否是回文 -2622. 闰年的判断 -2723. 输出 c 字母图形 -2824. 巴斯卡三角形 -2825. 三色旗 -3026. 回文数 -3227. 特殊回文数(普) -3228. 特殊回文数(经) -3429. 特殊的数字 -3530. 查找整数 -3531. 操作格子 -3632. 高精度阶

3、乘 n! -3933. 老鼠走迷宫 -4034. 逆序对 -4235. 数列排序 -4536. 数列排序(经) -4537. 第 39 台阶 -4838. 第 39 台阶(非递归) -5039. 最短路径 Dijkstar 算法 -5140. 最短路径 Floyd 算法 -5341. 区间 K 大数查询 -5542. 八皇后递归算法 -57 43. 八皇后回溯算法 -61 44. 八皇后回溯算法 2 -6245. 2n 皇后问题 -6346. 前缀表达式 -6547. (3 个数)最大最小公倍数-6648. 2 的次幂问题 -6749. 数的全排列问题 -6950. 猴子吃桃 -7251. 角

4、谷定理 -7252. 高斯日记 -7353. 马虎的算式 -7454. 黄金分连数 -7555. 前缀判断 -7756. 三部排序 -7857. 翻硬币 -7958. 李白打酒(递归) -8159. 李白打酒(二进制) -8260. 普利姆算法 -8461. 深度遍历 -8562. 广度优先遍历 -8763. 两个物种 -8964. 选手答题 -9065. 比酒量 -9166. 盒子取球方法(一) -9267. 盒子取球方法(二) -9368. 大数相乘 -9569. 字母转换为 6 位数字 -9670. 打印图形 -9871. 奇怪的分式 -10072. 六角填数 -10273. 蚂蚁感冒

5、-10474. 地宫取宝 -10675. 高精度加法 -10976. Huffman 树 -11077. 报时助手 -11178. 回形取数 -11379. 龟兔赛跑预测 -11480. 芯片测试 -11681. FJ 的字符串 -11782. Since 之舞 -11883. 数的读法 -11984. 完美的代价 -12185. 矩形的面积交 -12386. 矩阵乘法 -12587. 质因数分解 -12688. 字符串对比 -12889. 时间转换 -12990. 出现次数最多的整数 -12991. 捉鬼大师 -131有些算法在你不明白时,最好在稿纸上走一遍,这样可以更好地理解算法。有些算法

6、可能已优化,有些未优化,但结果是正确的,可能时间上和空间上有点浪费。纯属个人整理,如有差错还请见谅!算法实现一,将 10 进制转为二进制/*如输入:13输出:1101*/#includeint fact(int n)if(nint main(void)for(int i=1;i*2.3=82.3-0.000001double result;scanf(“%d“,result=PI*(r*1.0)*(r*1.0); printf(“%.7f“,result);return 0;四,标题:切面条/*一根高筋拉面,中间切一刀,可以得到 2 根面条。如果先对折 1 次,中间切一刀,可以得到 3 根面条

7、。如果连续对折 2 次,中间切一刀,可以得到 5 根面条。那么,连续对折 10 次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。*/#includeint main(void)int num=2;for(int i=1;iint main(void)int count=0;int i,j,k,l,m;for(i=0;iint main(void)int i;for (i = 0; i #include#define MAXINE 26void print(char aMAXINEMAXINE,int m,int n)int i,j;for(i=0;

8、i=0;j-)aij=+str;print(a,m,n);int main(void)int n,m;char aMAXINEMAXINE;printf(“Enter m and n(m 行 n 列):“);scanf(“%d%d“,creat(a,m,n);return 0;七,求 n 个数的最大值,最小值,和/*输入格式第一行为整数 n,表示数的个数。第二行有 n 个数,为给定的 n 个数,每个数的绝对值都小于 10000。如输入:Enter n:5-1 5 9 32 2输出 max=32min=-1sum=47*/ #include#include#define MAXINE 10000

9、int main(void)int i,n,min=MAXINE,max=-MAXINE;int sum=0,aMAXINE;printf(“Enter n:“);scanf(“%d“,for(i=0;imax)max=ai;sum+=ai;printf(“max=%dn“,max);printf(“min=%dn“,min);printf(“sum=%dn“,sum);return 0;八,杨辉三角形/*它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。下面给出了杨辉三角形的前 4 行:11 11 2 11 3 3 1给出 n,输出它的前 n 行。输入格式输入包含一个数 n。输出

10、格式输出杨辉三角形的前 n 行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格*/#include#include#define MAXINE 100int main(void)int j,i;int n;int aMAXINEMAXINE;printf(“Enter n:“);scanf(“%d“,a00=1;/第一个数置为 1for(i=0;ib)a=a-b;elseb=b-a;printf(“最大公约数是 :%dn“,a);/这里 a 或 b 都可以 printf(“最小公倍数是 :%dn“,m*n/a);return 0; */方法三 穷举法in

11、t main(void)int i=1,a,b,t,m,n;printf(“Enter a and b:“);scanf(“%d%d“,m=a,n=b;while(ivoid main() /* 辗转相除法求最大公约数 */ int m, n, a, b, t, c;printf(“Input two integer numbers:n“);scanf(“%d%d“, m=a; n=b;while(b!=0) /* 余数不为 0,继续相除,直到余数为 0 */ c=a%b; a=b; b=c;printf(“The largest common divisor:%dn“, a);printf(

12、“The least common multiple:%dn“, m*n/a); 相减法有两整数 a 和 b: 若 ab,则 a=a-b 若 a12 ) 15123( 123 )1239( 93 ) 936( 63 )633( 3=3 )因此,3 即为最大公约数#includevoid main ( ) /* 相减法求最大公约数 */ int m, n, a, b, c;printf(“Input two integer numbers:n“);scanf (“%d,%d“, m=a; n=b; /* a, b 不相等,大数减小数,直到相等为止。*/ while ( a!=b) if (ab)

13、 a=a-b; else b=b-a;printf(“The largest common divisor:%dn“, a);printf(“The least common multiple:%dn“, m*n/a);穷举法有两整数 a 和 b: i=1 若 a,b 能同时被 i 整除,则 ti i+ 若 i a(或 b),则 t 即为最大公约数,结束改进: i= a(或 b) 若 a,b 能同时被 i 整除,则 i 即为最大公约数,结束 i-,再回去执行有两整数 a 和 b: i=1 若 a,b 能同时被 i 整除,则 ti i+ 若 i a(或 b),则 t 即为最大公约数,结束改进:

14、i= a(或 b) 若 a,b 能同时被 i 整除,则 i 即为最大公约数,结束 i-,再回去执行#includevoid main () /* 穷举法求最大公约数 */ int m, n, a, b, i, t;printf(“Input two integer numbers:n“);scanf (“%d,%d“, m=a; n=b;for (i=1; i0; t- )if ( a%t = 0 */十,歌手大奖赛/*在歌星大奖赛中,有 10 个评委为参赛的选手打分,分数为 1100 分。选手最后得分为:去掉一个最高分和一个最低分后其余 8 个分数的平均值。请编写一个程序实现。题目条件不变,

15、但考虑同时对评委评分进行裁判,即在 10 个评委中找出最公平和最不公平在歌星大奖赛中,有 10 个评委为参赛的选手打分,分数为 1100 分。选手最后得分为:去掉一个最高分和一个最低分后其余 8 个分数的平均值。请编写一个程序实现。输入:Input number1=90Input number2=91Input number3=93Input number4=94Input number5=90Input number6=99Input number7=97Input number8=92Input number9=91Input number10=95输出: Canceled max sco

16、re:99Canceled min score:90Averagescore:92*/#includeint main(void)int integer,i,max,min,sum;max=-32768;min=32767;sum=0; for(i=1;imax)max=integer; if(integerint a1000001;int main()int i,n;a1=1;a2=1;for(i=3;i=1000000;i+)ai=(ai-1+ai-2)%10007;scanf(“%d“,printf(“%dn“,an);return 0;十四,求前 n 项的和 1+2+n问题描述求 1+2+3+.+n 的值。输入格式输入包括一个整数 n。输出格式输出一行,包括一个整数,表示 1+2+3+.+n 的值。样例输入4样例输出10样例输入100样例输出5050数据规模与约定1 = n = 1,000,000,000。说明:有一些试题会给出多组样例输入输出以帮助你更好的做题。一般在提交之前所有这些样例都需要测试通过才行,但这不代表这几组样例数据都正确了你的程序就是完全正确的,潜在的错误可能仍然导致你的得分较低。想要得到详细的请购买http:/ 语言算法总结购买完全的。保证每一个程序都正确。著作权所有,用着请谨慎!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报