第十周练习 1006 月之数
2015-11-19 21:18
316 查看
Problem Description
当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数。如果一个正整数m表示成二进制,它的位数为n(不包含前导0),寒月称它为一个n二进制数。所有的n二进制数中,1的总个数被称为n对应的月之数。
例如,3二进制数总共有4个,分别是4(100)、5(101)、6(110)、7(111),他们中1的个数一共是1+2+2+3=8,所以3对应的月之数就是8。
Input
给你一个整数T,表示输入数据的组数,接下来有T行,每行包含一个正整数 n(1<=n<=20)。Output
对于每个n ,在一行内输出n对应的月之数。Sample Input
3 1 2 3
Sample Output
1 3 8
这算递归嘛?
总之……各种折腾,先是折腾阶乘和组合的写法,然后发现数字溢出了……OTZ
最后算是做出来了,感觉不错,学到新东西了。
#include<stdio.h> __int64 jc(int i) { __int64 sum=1; int j; for(j=2;j<=i;j++) sum*=j; return sum; } __int64 pl(int a,int b) { __int64 sum; int c; c=b-a; sum=jc(b)/(jc(c)*jc(a)); return sum; } int main() { int n,i,a; __int64 sum; while(scanf("%d",&n)!=EOF) { while(n--) { scanf("%d",&a); if(a==0) { sum=0; } else { sum=1; int j=0; for(i=1;i<a;i++) { sum+=pl(i,a-1)*i; j+=pl(i,a-1); } sum+=j; } printf("%I64d\n",sum); } } return 0; }
相关文章推荐
- HTTP协议学习(三)——连接管理
- Spark学习(二)---kafka+SparkStreaming的搭建与连接
- python实现爬虫统计学校BBS男女比例(一)前期准备、方案分析
- 最优比率生成树
- 个人理解
- radio
- 昌大软院大神养成计划之网页设计之路第二天
- context:property-placeholder
- 用Swing写个scrapy爬虫图形界面
- A==B?
- <5> go 上下文传递context
- gcc -E 预编译模板类
- Introducing IPython Notebook
- 【leetcode】Product of Array Except Self
- ural 1306. Sequence Median
- 极限学习机(Extreme Learning Machine)
- 一个优化的查找姓名首字母相同的方法
- AFNetworking用法及网络监测
- 最大闭合权图
- lintcode :Ugly Numbers 丑数