HDU2502:月之数
来源:互联网 发布:炒股票下载什么软件 编辑:程序博客网 时间:2024/04/30 03:53
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。
如果一个正整数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
3123
Sample Output
138
#include <iostream>#include <cstdio>using namespace std;void home(int n,double *s) //就是算二项式而已{ int i,j,t; *s = 1; *(s+n) = 1; for(i = 1;i<=n-1;i++) //算出二项式的每一项 { j = i; t = n-1; *(s+i) = 1; while(j) { *(s+i)= *(s+i)*t/j; //要用double型,如果是整型的话会使小数点后的数小消失 t--; j--; } }}int main(){ int t,n; cin >> t; while (t--) { double s[25]={0},sum = 0,j = 1; cin >> n; home(n,s); for(int i = 0;j<=n;i++,j++) { sum+=j*s[i]; } printf("%.0lf\n",sum); } return 0;}
- HDU2502:月之数
- hdu2502 月之数
- HDU2502:月之数
- hdu2502:月之数
- HDU2502 月之数
- 月之数(HDU2502)
- HDU2502 月之数【水题】【规律】
- HDU2502 月之数(解法二)
- HDU2502 月之数(解法三)
- hdu2502-月之数 注意int double范围
- hdu2502
- hdu2502&杭电oj_2502(组合数)
- 2502 月之数
- hdu 月之数
- 月之数
- HDU 月之数
- 月之数
- 月之数
- 用户sa登入失败,该用户与可信SQL server连接无关联 错误18452(远程数据库访问)
- C++用户自定义转换(User-Defined Conversion)(摘自cnblogs)
- 第一章 web应用程序安全与风险1
- Android中 调用图库 选择 图片的参数理解
- 怎么调用系统自带的图库看图片
- HDU2502:月之数
- 设计模式之3 C&C当中的策略(strategy)模式
- 调整jvm大小
- 打开指定应用程序
- C#3.0扩展方法
- 设计模式之4 工厂模式
- NavigationController的使用
- Could not read symbols:Linux/UNIX系统下编译时,常见的一类报错信息解决方法
- 程序集“XX” 中的类型“XX” 的方法“XX()” 没有实现