- 博客(17)
- 收藏
- 关注
原创 十进制转换为二进制的简洁算法
#include int main(void){ int n; long long int s,i; while(scanf("%d",&n)!=EOF){ i=1; s=0; while(n/2>=2) { s+=n%2*i; n=n/2;
2016-11-11 13:43:23
993
原创 平面分割问题
首先是多直线分割:在一个平面上分割出最多的平面,于是第n条线必须与前n-1条线相交,于是第n条线被分成了两条射线和(n-2)条线段,于是增加了(n-2)+2=n个平面故f(n)=f(n-1)+n f(n-1)=f(n-2)+n-1.。。。。。。。。。。。。。。 f(2)=f(1)+2;又因为f(1)=2;可得通项公式:f(n)=(n^2+n-2)/2+2;
2016-11-10 23:31:36
620
原创 错位排列的魅力
错位排列:即n个有编号的人各自抽不中自己的号码以下证明其公式为:f(n)=(n-1)*(f(n-1)+f(n-2))首先是第一个人,称为1号1号不抽取自己,有(n-1)种抽取方法假设1号抽中2号有两种情况:1、2号也抽中了1号,于是剩下n-2个自己进行错位排列,得f(n-2)种2、2号没有抽中1号,则必有后面的抽中1号,于是此时将2号当作1号,即假设后面抽到的1号是2号,于是又有f(n-1)种所有
2016-11-10 01:55:40
360
原创 关注递归数列
递归的数列在多个题目中均有体现,其中出现最频繁的是费波纳茨数列!而关于它的形式,各种各样。目前遇到的有以下几种:1、楼梯问题即每次上楼只能走一个或两个阶梯。然后询问走到第n个阶梯有多少种走法?标准费波纳茨数列!2、兔子问题一只兔子2个月后会生小兔子,兔子都不会死去,问n个月后又多少兔子?同理,兔子数列(费波纳茨数列)3、路径问题有格子如下说从一个数开
2016-11-08 21:26:06
340
原创 一个既用到了排序和贪心的算法
这是杭电2037#include int main(void){ int n;//n个节目 int i,j,v,out,t,min; int sta[200],end[200];//开始时间和结束时间 while(scanf("%d",&n)!=EOF)//获得输入 { if(n==0) break;
2016-11-05 01:31:34
1148
原创 任意多边形的求解c语言
杭电2037题#include int main(void){ int n,i;//n个坐标 double sum;//面积 int site[150][2];//每个坐标 while(scanf("%d",&n)!=EOF)//获得输入 { if(n==0) break;//0时跳出 for(
2016-11-05 01:20:47
1622
原创 关于杨辉三角的解决方案
#include //一个巧妙地算法,杨辉三角#include int main(void){ int n;//杨辉三角层数 int a[1001];//杨辉三角的每一层的数字,现在是第0层 int i,j,g,k;//g和k有十分大的意义 int first; while(scanf("%d",&n)!=EOF)//获得输入 {
2016-11-02 00:12:16
714
原创 让一切都随风都随风
最近加强了打码强度,因此最近打起码了也就比较得心应手了!今晚又熬夜了,不行了,这个写完就休息,身体也是很重要的!刚才刷了一道水题,不过也学到了点东西是关于c语言中汉字储存的c中汉字是2个字节的,我想这是每个人都清楚的关键是每个汉子的储存都是负数!!这便是统计汉字个数所要用到的东西其次就没有了。。果然,在学到一定的程度是,刷题是增加知识的一个很好途径加油加油在贴一
2016-10-30 01:52:52
369
原创 杭电2028
莫名奇妙的ac了,一开始要么runtime error,要么wrong answer结果在不断修改中就ac了,估计还得多看几遍,不然真的不知道原先错哪里了!话说那个函数很是巧妙,辗转相除法!!很好,很简洁!以后要注意尽量用简单的算法去解决问题#include long long int re(long long int a,long long int b);int main(voi
2016-10-30 01:13:46
339
原创 杭电1005
这道题是继大数求和大数求幂来遇到的较难的题。其实怎么说,也不算难。只是自己没有想到而已。。先贴一下我AC的代码咯!#include int main(void){ int mo[50]={0,1,1};//至少50的循环数组 int a,b,t;//a和b long int n;//第n项 while(scanf("%d %d %d",&a,
2016-10-18 00:09:15
334
原创 杭电1008和2006
只能说做了许多题了,做这种题简直就是拼手速。。。,半个小时搞定,一次AC!果然,刷题是很有必要的,当然现在的我还是要意识到,我还存在些许知识空白,如杭电的1007和1006这两道题,现在仍处于不断百度,不断拓展自己相关知识的过程。暂时未能AC。。还是要多刷题,还是要多努力!如某个人说的:少说话,多做事!!加油!1008:#include #define up 6#d
2016-10-18 00:05:38
323
原创 hd1004解法!!strcmp函数的发现和熟悉使用
这是我一开始的hd1004代码,由于受到前几个问题的影响,导致没有考虑到去运用其他函数,结果time limit exceeded了,代码如下:#include #define bas 15//颜色字符串的字符个数int main(void){ int tim,a,max,t;//颜色个数,a测试用b为coun的计算,最多次,最大次数组存在位置 char cal
2016-10-12 00:59:05
372
原创 杭电1003的解决方法
今天试了一下1003,发现不是很难,结果我错了!我用了一种最直接的方法,结果超时了,于是我便去寻找更简洁的方法。结果还真找到了,于是自己编写了这个程序,结果当然AC啦!这个程序的算法很巧妙,值得学习!!源代码如下:#include int main(void){ int a,b,sum,max,st,en,e[100000],zo; int g=1;
2016-10-08 23:55:55
4416
2
原创 杭电1002。包括了该题一些常见错误
这是我自己用了很大力气写出来的代码。已经AC!!!!后面有关于该题的一些常见问题的解决方案!!有些是自己总结的经验,有些是看到别人傻乎乎的错了而提出的!!#include #include int main(void){ int q,j,h,k,l; int d; char s1[1001],s2[1001]; scanf("%d",&h
2016-10-07 21:46:52
4975
4
原创 坚持练习,熟能生巧
简单点说,熟能生巧,这是众人皆知的道理。不管在哪个方面,这都适用。 c语言辅导书中含有许多的编程练习,作为一个初学者,我觉得应该独立的去一一完成。至少我是这样做的。 在不断的练习下,编程的感觉就会找到。当然在练习的过程中还是需要融会贯通,并不断的尝试,才能获得新的感悟。 这一次说说关于char的一次练习。 练习的要求只是简单的要求读者
2016-08-19 12:50:22
1775
原创 尝试——交互式程序编写
关于交互式程序,简单明了的说,就是允许与用户进行交互的程序,或说允许用户进行输入操作。这种程序的好处在于对于一些变量可以依据用户需要进行改变,而不用重新编写一个程序或对程序进行修改,变得更加方便。 而实际上交互程序并不难实现。在通过对书本的研究,发现其实交互式程序不过就是一个scanf()的运用罢了,这是一个输入函数,与之相对的便是输出函数,就是我们都熟悉的printf()。实践才是检验
2016-08-10 14:00:05
1913
原创 关于学习c编程中调用函数时遇到的些许问题
c编程语言对于一个初学者来说是陌生的,所以学起来总会觉得不容易。在学习过程中,总会遇到这些那些的问题。现在说说我遇到的一些问题。 一开始看书时看到的总是一些概念性的语言,然而这对于一个理科生来说稍微琢磨便不成问题,而到后来开始讲解编程时,就会有一些麻烦了。刚开始讲的是简单编程语言,如语法错误,语义错误之类,还有涉及了一些有如int main (void)中的关键字的大概意思,由于
2016-08-03 12:07:33
710
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人