杭电2502--月之数
生活随笔
收集整理的這篇文章主要介紹了
杭电2502--月之数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
月之數
Time Limit: 1000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 7725????Accepted Submission(s): 4558
如果一個正整數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?
Source 《ACM程序設計》短學期考試_軟件工程及其他專業?
Recommend lcy???|???We have carefully selected several similar problems for you:??2504?2503?2500?2501?2201? 分析數據可得: n 位二進制數, 最高位不可能為0, 題目要求求所有情況下“1” 的總數; 可得: n -= 1 , i = 1 ;? c(i++, n--) *i? &&(n>=1); //AC: 1 #include <stdio.h> 2 int math(int n) 3 { 4 __int64 i, j, sum = 1, total = 1, con = 1 ; 5 for(i=n-1, j=1; i>=1; j++, i-- ) 6 { 7 total *= i ; sum *= j ; 8 con += total/sum *(j+1) ; 9 } 10 return con ; 11 } 12 int main() 13 { 14 int n, m ; 15 scanf("%d", &n) ; 16 while(n--) 17 { 18 scanf("%d", &m) ; 19 int con = math(m) ; 20 printf("%d\n", con) ; 21 } 22 return 0 ; 23 }?
轉載于:https://www.cnblogs.com/soTired/p/4668183.html
總結
以上是生活随笔為你收集整理的杭电2502--月之数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZendStudio10.6.1如何安装
- 下一篇: 使用nohup在后台运行scp