蓝桥杯 计数问题 day3

博客解析了蓝桥杯竞赛中的一道计数问题,涉及在1到n的整数区间内计算数字x的出现次数。通过示例和错误代码分析,指出在解决此类问题时需要注意循环变量的使用,强调了正确记录循环次数的重要性。作者分享了自己的思考过程和调试经验,指出将printf输出用于找错是有效的解决方法。
摘要由CSDN通过智能技术生成

题目
题目描述
试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1 到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。
示例
输入描述:
输入共 1 行,包含 2 个整数 n、x,之间用一个空格隔开。
其中,1≤ n ≤ 1000000,0 ≤ x ≤ 9。
例如:
样例输入:
11 1
输出描述:
输出共 1 行,包含一个整数,表示 x 出现的次数。
例如:
对应输出:
4

总结
我之前也遇到过这种问题,就是直接用了循环题里面的变量来进行运算,但始终搞不懂为什么不行,今天,总算搞清楚了。
因为i第一次就以i=1进来,然后进入内循环体(while)后就变成了i=0,然后又去进行外循环体(for)的i++,
然后i就又用i=1的身份进来,就又进行一次和上回一样的循环,这就成为只有count在累加其他数字没有在变的死循环了。
因此,用于记录循环次数的i不应该在循环内被改变,我们要在进入while前,把i给另一个变量,比如 int j=i; ,然后在while内使用变量j去进行运算。
而我在进行思考和调试的时候,虽然for和while都是循环,但因为for然后int i在之前一直在用它控制次数控制次数,所以找错误的时候一直关注于while里面变量的值
然后注意力都在while循环,而忽略了要结合for循环来看代码的问题,半天找不到错。
总感觉没有人会犯跟我一样笨的错误…最后把printf输出放里面找错确实是个不错的方法嘿嘿,看来看书脑子还是进去了点东西_(:з」∠)_
这道就是换汤不换药的字数统计

PASS代码

#include <stdio.h>
int main()
{
   
	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值