0101少儿编程
Home
ProblemSet
Source/Category
Contest
Status
Ranklist
F.A.Qs
IDE下载
Login
Register
5454: 【45课】【3275】 数位翻转
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:59
Solved:38
Submit
Submit Record
Statistics
ShowOff!
Description
给定一个数
n
,你可以进行若干次操作,每次操作可以翻转
n
的二进制表示下的某一位,即将
0
变成
1
,
1
变成
0
。 请问:至少需要多少次操作,才能将
n
变成
n
−
1
。
Input
一个正整数
n
。(
1
<
n
≤
10
9
)
Output
输出最少的操作次数。
Sample Input
Copy
10
Sample Output
Copy
2
HINT
样例说明:
10 的二进制是 1010
9 的二进制是 1001
因此最少需要两步:
1010 -> 1000 -> 1001
Source/Category
一本通编程启蒙
函数
Submit
Submit Record
Statistics
ShowOff!