1-100中出现9的数字有9,19,29……99和90,91,92……99。
观察9的位置,前面的9都在个位,后面的9都在十位,而99则个位十位都有9。因此我们可以考虑先使用for循环来产生1-100的整数,在使用%和/操作符来判断个位和十位是否有if (i / 10 == 9 || i % 10 == 9),设置一个计数器count,判断到一个含9的数字之后计数器加一,又因为99在我们的想法中只会使得计数器加一次,所以最后的个数应该再加上一个。
代码实现
#include<stdio.h>
int main()
{
int i = 1;
int count = 0;
for (i = 1; i <= 100; i++)
{
if (i / 10 == 9 || i % 10 == 9)
{
printf("%d ", i);
count++;
}
}
printf("\n%d", count+1);
return 0;
}