摘要: #includeint main(){ __int64 a[21],n; a[1]=0; a[2]=1; for(n=3;n<21;n++) a[n]=(n-1)*(a[n-1]+a[n-2]); while(scanf("%I64d",&n)!=EOF) printf("%I64d\n",a[n]); return 0;}View Code http://acm.hdu.edu.cn/showproblem.php?pid=1465记得用__int64 阅读全文
posted @ 2013-05-30 20:29 执着追求的IT小小鸟 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 错排公式 pala提出的问题: 十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法? 这个问题推广一下,就是错排问题: n个有序的元素应有n!种不同的排列。如若一个排列式的所有的元素都不在原来的位置上,则称这个排列为错排。 下面用递推的方法推导错排公式: 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推. 第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法; 第二步,放编号为k的元素,这时有两种情况.1,把它放到位置n,那么,... 阅读全文
posted @ 2013-05-30 20:24 执着追求的IT小小鸟 阅读(176) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2186能被10整除就直接除,不能的话就除完再加一#include<stdio.h>int main(){ int c,n,sum,q,y,t; scanf("%d",&c); while(c--) { scanf("%d",&n); q=n/2; n-=q; y=n*2/3; t=n-y; sum=0; if(q%10==0) sum+=q/10; else sum+=q/10+... 阅读全文
posted @ 2013-05-30 20:05 执着追求的IT小小鸟 阅读(133) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<string.h>int main(){ int sum,i,t=0; char s[10000]; while(scanf("%s",s)!=EOF) { sum=0; if(t) printf("\n"); for(i=0;s[i]!='\0';i++) if((s[i]-48)%2==0) sum+=s[i]-48; printf("%d\n",sum); t++; } return 0;}View Cod... 阅读全文
posted @ 2013-05-30 12:39 执着追求的IT小小鸟 阅读(132) 评论(0) 推荐(0) 编辑