[英]how to count zero after the last non-zero digit in C
我需要在数字的最后一个非零数字之后计算零的数量
示例输入:20400
示例输出:2
这是我的代码如下:
#include<stdio.h>
int lastZero(int n);
int main()
{
int number,lastZeroDigit;
int i;
scanf("%d",&number);
lastZeroDigit = lastZero(number);
for(i=number-1 ; i>1 ; i--)
lastZeroDigit = lastZero(lastZeroDigit * i);
printf(" %d \n",lastZeroDigit);
}
int lastZero(int n)
{
if(n%10 != 0)
return n%10;
else
return lastZero(n/10);
}
如何在C中的最后一个非零数字后计算零
为什么要从number - 1
迭代到>1
并检查lastZeroDigit * i
number 中的最后一个零? 如果您只想计算最后一个非零数字之后的数字中零的数量,则只需检查number % 10
的结果,如果结果为0
则增加计数器并执行number = number / 10
并再次检查,否则停止。 需要特别注意0
输入,即 - 如果输入为0
无需检查,因为输入数字中没有非零数字。 你可以做:
#include<stdio.h>
int main (void)
{
int number;
unsigned int count = 0;
printf ("Enter a number:\n");
scanf ("%d", &number);
while (number && (number % 10 == 0)) {
++count;
number = number / 10;
}
printf ("Zero's after last non zero digit in number %d are : %u \n", number, count);
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.