将数字归零的 LeetCode 问题的步骤数
Number of steps to reduce a number to zero leetcode problem
#include <stdio.h>
int main()
{
int num, count;
count = 0;
num = 8;
while (num != 0)
{
if (num % 2 == 0)
{ // checks if num is even
num = num / 2;
count = count + 1; // increases counter by 1
}
else
{
num = num - 1;
count = count + 1;
}
printf("%d", count); // prints counter
}
return 0;
}
出于某种原因,输出是 1234
而不是 4
,谁能解释一下为什么?我也尝试调用 scanf()
而不是将 num 值设置为 8,但输出是相同的。
您正在循环内打印计数器,并且没有使用换行符打印它。所以你打印“1”、“2”、“3”,然后是“4”,它在你的终端中看起来像“1234”。使用适当的缩进,这样您就可以直观地看到发生了什么,并注意到您的 printf
在一个循环中。
#include <stdio.h>
int main()
{
int num, count;
count = 0;
num = 8;
while (num != 0)
{
if (num % 2 == 0)
{ // checks if num is even
num = num / 2;
count = count + 1; // increases counter by 1
}
else
{
num = num - 1;
count = count + 1;
}
printf("%d", count); // prints counter
}
return 0;
}
出于某种原因,输出是 1234
而不是 4
,谁能解释一下为什么?我也尝试调用 scanf()
而不是将 num 值设置为 8,但输出是相同的。
您正在循环内打印计数器,并且没有使用换行符打印它。所以你打印“1”、“2”、“3”,然后是“4”,它在你的终端中看起来像“1234”。使用适当的缩进,这样您就可以直观地看到发生了什么,并注意到您的 printf
在一个循环中。