posted @ 2006-12-08 01:36
随笔分类 - 其它编程题目讨论
摘要:出道又简单也不怎么简单的题目,大家有兴趣讨论一下啊哈哈,就是排列组合啦。 输入n(0<n<12) 对字符串s="ABCDEFGHIJKL"; (1)前n个字符作全排列,按(字典)顺序输出。 比如:n=3时 ABC ACB BAC BCA CAB CBA 共有n!个 (2)前n个字符作全组合,按顺序输出。 A B C AB AC BC ABC 共有2^n-1个。另一种顺序:ABABCAC...
阅读全文
摘要:这题以前讨论过,记得是用牛顿迭代法, 今天网上随便逛,偶然找到一些关于阶乘计算的资料。 发现这东西涉及到很多数学公式证明的问题,计算机仅仅只是辅助。 所以边找边研究,然后找到一些大数阶乘的快捷计算方式。 现在回到此题,即使我找到最先进的计算大数阶乘的算法, 若完全计算10的7次阶乘,然后统计其位数,也需要几十分钟才行。 所以不可行,况且题目只需要求其位数。 那该怎么计算呢?非常的简单,此题其实是纯...
阅读全文
posted @ 2006-12-08 01:04
摘要:#include<stdio.h>#defineF(x,y,z)(((x)&(y))|((~x)&(z)))#defineG(x,y,z)(((x)&(z))|((y)&(~z)))#defineH(x,y,z)((x)^(y)^(z))#defineI(x,y,z)((y)^((x)|(~z)))#defineRL(x,y)(((x)<<(...
阅读全文
posted @ 2006-12-08 00:08
摘要:了解了qsort函数,就相当于掌握了独门秘笈,一旦程序需要排序,信手拈来.<本文中排序都是采用的从小到大排序> 一、对int类型数组排序 int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]...
阅读全文
posted @ 2006-12-08 00:02
摘要:八数码问题是经典题,我以前也做过相关研究,还引入了随机算法,效率比较理想.http://groups.google.com/group/TPC2005/browse_thread/thread/fc39a6e7b0bce11d/487b0ff700ef63c8#487b0ff700ef63c8百度也拿它作为05年百度之星编程大赛的题目:http://astar.baidu.com/main/abo...
阅读全文
posted @ 2006-12-07 23:57
摘要:时间复杂度应该是Nlog2N,有空研究研究.#include<stdio.h>intinv(intn,chara[]){intl=n>>1,r=n-l,i,j;char*v=(char*)malloc(n);intret=(r>1?(inv(l,a)+inv(r,a+l)):0);for(i=j=0;i<=l;v[i+j]=a[i],i++)for(ret+=j...
阅读全文
posted @ 2006-12-07 23:45
摘要:这是经过规范化,能够真正编译通过的代码.#include<stdio.h>inta=10000,b,c=2800,d,e,f[2801],g;intmain(){for(;b-c;)f[b++]=a/5;for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b...
阅读全文
posted @ 2006-12-07 23:17
浙公网安备 33010602011771号