今天做C语言的题,遇到了计算一个数的相同数字的个数,冥思苦想,上厕所都在想,想过取余想过除10但是没想在一起,最后查了答案。
a = number%10; //这是取到个位
number = number/10; //因为是int变量,所以直接除以10就相当于把个位数字抹去了
循环计a的数就行了。
我把题目贴下面。
int CountDigit( int number, int digit );
其中number
是不超过长整型的整数,digit
为[0, 9]区间内的整数。函数CountDigit
应返回number
中digit
出现的次数。
裁判测试程序样例:
#include <stdio.h>
int CountDigit( int number, int digit );
int main()
{
int number, digit;
scanf("%d %d", &number, &digit);
printf("Number of digit %d in %d: %d\n", digit, number, CountDigit(number, digit));
return 0;
}
/* 你的代码将被嵌在这里 */
最后函数
int CountDigit( int number, int digit )
{ int a=0; int s=0;
if(number<0) number = -number;
if(number == 0)
if(digit == 0)return 1;
else return 0;
while(number!=0)
{
a = number%10;
if(a == digit)
s++;
number = number/10;
}
return s;
}