輸入輸出格式 Input/output
輸入格式:
輸入包含多組數據,每組僅一行,爲正整數n(n≤10 9),輸入結束標誌爲文件結束符EOF
輸出格式:
對於每組數據,輸出最少操做次數
輸入包含多組數據,每組僅一行,爲正整數n(n≤10 9),輸入結束標誌爲文件結束符EOF
輸出格式:
對於每組數據,輸出最少操做次數
題目描述 Description測試
給定正整數n,你的任務是用最少的操做次數把序列1, 2, …, n中的全部數都變成0。每次操做可從序列中選擇一個或多個整數,同時減去一個相同的正整數。好比,1,2,3能夠把2和3同時減少2,獲得1,0,1。
輸入包含多組數據。每組僅一行,爲正整數n(n≤109)。輸入結束標誌爲文件結束符(EOF)。
對於每組數據,輸出最少操做次數。spa
1code
6blog
1 #include <stdio.h> 2 int fun(int n) 3 { 4 return n==1?1:fun(n/2)+1; 5 } 6 int main() 7 { 8 int n; 9 scanf("%d",&n); 10 printf("%d\n",fun(n)); 11 return 0; 12 }
代碼2以下:遞歸
1 #include <stdio.h> 2 int main() 3 { 4 int n; 5 while(scanf("%d",&n)!=EOF) 6 { 7 int ans=0; 8 for(;n>0;n/=2) 9 ans++; 10 printf("%d\n",ans); 11 } 12 return 0; 13 }