1到 100 的所有整数中有多少个数字9(C语言)

本文详细描述了一种使用for循环和取余运算判断1到100整数中9出现次数的方法,包括处理个位和十位的情况,以及如何避免99只计算一次的问题。给出了相应的C语言源码和运行结果。
摘要由CSDN通过智能技术生成

思路

先定义一个for循环用来获取1~100的整数。

再用取余的方式获得个位并判断,如为9就加一不为就跳过。

那十位我们应在怎么办?

判断完个位之后,我们在除于10就会得到个小数,又因为是int类型计算机就会自动抹除小数,这样在进行取余判9再加一的方式就能判断十位上是不是9了。

那只有个位数怎么办?

笨,只有个位数的话对10取余不就等于本身吗,除以10的话等于零点几几(0.xxx)又因为是int类型,在被计算机抹除小数点后面的值不久等于0吗,0不就是while循环的终止条件吗。

注意:

不要只判断个位是九或者十位是九,这样的话99你就只算了一个,最后输出的结果是19个,

如果非要这么写那就在判断上在加上一句num == 99这样才可以,但又仅限于1~99的判断,要不999,9999,99999你还得少数。

判断过程:

	for (int i = 1; i <= 100; i++)
	{
		int num = i;
		do
		{
			if (num % 10 == 9)
				count++;
			num /= 10;
		} while (num);
	}

源码:

#include <stdio.h>

int main()
{
	int count = 0;
	for (int i = 1; i <= 100; i++)
	{
		int num = i;
		do
		{
			if (num % 10 == 9)
				count++;
			num /= 10;
		} while (num);
	}
	printf("%d", count);
}

运行结果:

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值