杭电 2068(错排加组合)
来源:互联网 发布:司法行政人员 知乎 编辑:程序博客网 时间:2024/05/22 14:17
对于组合有种方法。第一种很容易超出__int64的范围.
错误代码
#include<stdio.h>__int64 nn(int n) //n应该不能超过20{ __int64 i,s = 1; for(i = 1;i <= n; i++) s *= i; return s;}int main(){ __int64 a[30]; a[1] = 0; a[2] = 1; int i; for(i = 3;i < 28; i++) a[i] = (a[i-1] + a[i-2])*(i-1); int n; while(scanf("%d",&n) != EOF) { if(n == 0) break; __int64 sum = 1; for(i = 1;i <= n/2; i++) sum = sum + nn(n)/(nn(n-i)*nn(i))*a[i]; printf("%I64d\n",sum); } return 0;}
法二:
正确代码
#include<stdio.h>__int64 nn(int n,int m){ int a = 1; for(int i = 1;i <= m; i++) { a = a*(n-i+1); // 可以先记住,慢慢理解。 a /= i; } return a;}int main(){ __int64 a[30],sum; int n,i; a[1] = 0; a[2] = 1; for(i = 3;i <= 12; i++) a[i] = (i-1)*(a[i-1] + a[i-2]); while(scanf("%d",&n) != EOF) { if(n == 0) break; sum = 1; for(i = 1;i <= n/2; i++) sum = sum + nn(n,i)*a[i]; printf("%I64d\n",sum); } return 0;}
0 0
- 杭电 2068(错排加组合)
- 【杭电oj】2068 - RPG的错排(错排,排列与组合)
- 杭电 2049 (错排,递归,组合)
- hdu2502&杭电oj_2502(组合数)
- 电商----货品组合(详情页展示)
- hdu 4705 Y/杭电2013年多校第十场1010 组合
- HDOJ, 杭电2049, 不容易系列之(4)——考新郎。。。组合加错排。
- 电商项目搜索自定义组合控件
- 杭电1257(DP)
- 杭电 4771 (BFS)
- 杭电2571(DP)。
- 杭电1008(坑)
- 最小公倍数(杭电1108)
- 排序(杭电1106)
- 杭电 2700(水题)
- 杭电 2710(水题)
- 寻梦(杭电2567)
- 迷障(杭电2570)
- 回归神经网络RNN(Recurrent Neural network)
- Java基础整理(一)
- POJ-2975-Nim(Nim博弈)
- poj 2253 Frogger
- 活动的启动模式 --13
- 杭电 2068(错排加组合)
- 不用第三变量做值交换,不用sizeof判断int字节数
- java工具类-排序介绍
- 白话经典算法系列之六 快速排序
- 如何选择机器学习算法
- public,protected,friendly,private之间的区别,及findViewById的作用
- Lucene和Solr 学习目录
- 发现新大陆
- a:link a:visited a:hover a:active