背景 Background | |||
怪盜基德 VS OIBH 第三話 |
|||
描述 Description | |||
怪盜基德第三次來到熟悉的OIBH總部。屢屢失敗的OIBH這次看守的是The Eye of Moon。還是那個
房間,還是那扇門,不同的是OIBH對密碼鎖進行了改進。這次屏幕上只顯示一個數n(基德:這是 改進了還是退化了?)。 密碼生成方法:設集合A中A={1,2,...,n},B爲A子集。對於B中任意一個元素x,2x均不在集合B中。 B中元素數目最大值即爲密碼。 |
|||
輸入格式 Input Format | |||
一行,一個整數n(1<=n<=maxlongint) | |||
|
|
|
|
|
輸出格式 Output Format |
|
|
|
只有一個整數m,表示B中元素最大值 |
這個題目乍一看差點被整暈了,但是自己思考還是比較簡單的問題,這題目可以藉助數軸進行理解:
首先題目可以理解爲:
集合A即爲數軸AD,現在研究集合B,首先對摺數軸得到CD滿足條件,依次向下研究AC ,去掉BC,可以得到AB,再向下研究AB,依次下去可以得到
#include <stdio.h>
int cal(int n)
{
if(n <= 0)
return 0;
else
return (n+1)/2+cal(n/4);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",cal(n));
return 0;
}