I don't know why my code is wrong...
Question:
Example 1:
Input: num = 14
Output: 6
Explanation:
Step 1) 14 is even; divide by 2 and obtain 7.
Step 2) 7 is odd; subtract 1 and obtain 6.
Step 3) 6 is even; divide by 2 and obtain 3.
Step 4) 3 is odd; subtract 1 and obtain 2.
Step 5) 2 is even; divide by 2 and obtain 1.
Step 6) 1 is odd; subtract 1 and obtain 0.
Example 2:
Input: num = 8
Output: 4
Explanation:
Step 1) 8 is even; divide by 2 and obtain 4.
Step 2) 4 is even; divide by 2 and obtain 2.
Step 3) 2 is even; divide by 2 and obtain 1.
Step 4) 1 is odd; subtract 1 and obtain 0.
Code:
#include<stdio.h>
int main(){
int numberOfSteps(int num){
int steps=0;
printf("Please enter the number:");
scanf("%d",&num);
while(num!=0){
num=(num%2==0)?num/2:num-1;
++steps;
}return steps;}}
No value is shown after changing
Quote:
Originally Posted by
Salem
> num=(num%2==0)?num/2:num-1;
Try writing it out in long form.
This looks like you found this on google.
Oh, and C doesn't support nested functions.
Code:
#include<stdio.h>
int main(){
int num;
int steps=0;
printf("Please enter the number:");
scanf("%d",&num);
while(num!=0){
num=(num%2==0)?num/2:num-1;
steps ++;}
return steps;
}