HDU 2502 月之数
2015-08-24 13:54
218 查看
月之数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7914 Accepted Submission(s): 4676
[align=left]Problem Description[/align]
当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-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。
[align=left]Input[/align]
给你一个整数T,表示输入数据的组数,接下来有T行,每行包含一个正整数 n(1<=n<=20)。
[align=left]Output[/align]
对于每个n ,在一行内输出n对应的月之数。
[align=left]Sample Input[/align]
3 1 2 3
[align=left]Sample Output[/align]
1 3 8
[align=left]Source[/align]
《ACM程序设计》短学期考试_软件工程及其他专业
注意:pow的使用
原型:在TC2.0中原型为extern float pow(float x, float y); ,而在VC6.0中原型为double pow( double x, double y );
头文件:math.h/cmath(C++中)
功能:计算x的y次幂。
返回值:x不能为负数且y为小数,或者x为0且y小于等于0,返回幂指数的结果。
返回类型:double型,int,float会给与警告!
C++提供以下几种pow函数的重载形式:
double pow(double X,int Y);
float pow(float X,float Y);
float pow(float X,int Y);
long double pow(long double X,long double Y);
long double pow(long double X,int Y);
使用的时候应合理设置参数类型,避免有多个“pow”实例与参数列表相匹配的情况。
其中较容易发生重载的是使用形如:
int X,Y;
int num=pow(X,Y);
这是一个比较常用的函数,但是编译器会提醒有多个“pow”实例与参数列表相匹配。
可以使用强制类型转换解决这个问题:num=pow((float)X,Y);
#include<stdio.h> #include<math.h> int main (void) { int n,T; scanf("%d",&T); int a[25]; a[1]=1; for( int i=2;i<=20;i++) { a[i]=2*a[i-1]+pow((float)2,i-2); } while(T--) { scanf("%d",&n); printf("%d\n",a ); } return 0; }
相关文章推荐
- Java关键字之finalize
- appium-api
- C++11实现for each(type var in collection)能识别的类
- httpd详解(二)
- 国内从事红外热成像的公司
- SCST在SAN网络环境中的应用
- java 字节流与字符流的区别
- hdu 1814 Peaceful Commission (2-sat入门)
- [LeetCode] Roman to Integer
- 关于文字内容溢出用点点点(…)省略号表示
- JSONP跨域的原理解析
- Java进阶07 嵌套类
- Ubuntu安装net-snmp-5.5.1方法总结
- 淘米水有大用处
- 武侠小说大全
- C51的中断号排序规则
- substr和instr的使用
- 大话存储1——存储系统的发展,计算机I/O
- 不忘初心,方得始终!
- awk与shell之间的变量传递方法