给定一个正整数n,请写一个函数 Steps ,将n 通过以下操作变成0,并且返回操作次数
n为偶数,则n=n/2;
n 为奇数,则n=n-1。
格式
输入格式:第一行输入正整数n
输出格式:输出操作次数
样例1
输入:14
输出:6
备注
其中: 1<=n<=10^7
#include<stdio.h>
int Steps(int n);
int main()
{
int n;
scanf("%d",&n);
printf("%d",Steps(n));
return 0;
}
int Steps(int n)
{
int s=0;
while(n)
{
if(n%2==0)
n/=2;
else
n--;
s++;
}
return s;
}
这段代码的功能是计算将给定整数n变为0所需的最小步数,每一次可以将n减1或者将n除以2(当n为偶数时)。
具体实现中,Steps函数使用了一个循环来迭代直到n等于0。在每次循环中,首先判断n是否为偶数,如果是偶数,则将n除以2;否则,将n减1。然后,在每次循环结束之前,步数s都会自增1。最终,该函数返回步数s,即将n变为0所需的最小步数。
主函数main用于读取输入的整数n,调用Steps函数计算最小步数并输出结果。