[恢]hdu 2502
2011-12-15 03:44:22
地址:http://acm.hdu.edu.cn/showproblem.php?pid=2502
题意:中文。。。
mark:应该有公式,不过直接递推吧。。。dp[i]表示所有长度小于等于i的数共有多少个1。
代码:
# include <stdio.h>
# include <stdlib.h>
int dp[25] = {0, 1} ;
int main ()
{
int i ;
for (i = 2 ; i <= 20 ; i++)
dp[i] = dp[i-1] * 2 + (1 << (i-1)) ;
scanf ("%d", &i) ;
while (~scanf ("%d", &i))
{
printf ("%d\n", dp[i-1] + (1 << (i-1))) ;
}
return 0 ;
}