竞赛
考级
前置知识:P2602
n=728n=728n=728 , x=7x=7x=7 可以按照这样的思路: 个位 777 : 737373 个 777 , 171717 ,..., 727727727 十位 777 : 707070 个 707070 ~ 797979 , 170170170 ~ 179179179 ,..., 670670670 ~ 679679679 百位 777 : 292929 个 700700700 ~ 728728728 答案是 172172172
分离数的各个位,%10/10就ok CODE:
题意 计算在 111~nnn(n≤106n \leq 10^6n≤106)中所有的整数中,数字 xxx(0≤x≤90 \leq x \leq 90≤x≤9)共出现了几次 分析 * 内层循环:可考虑对于一个整数tmp,我们可以获得他的每一位进行统计,方法就是只要对他除10取余数,就可以得到他的个位数字,判断是不是等于 xxx,如果就是 xxx,则计数器加 111;然后吧 tmp 自除 101010,把原来的个位数去掉了;重复刚才的流程,每次都统计个位数,知道tmp 为 000 位置,这就是内层循环,可使用while解决。 * 外层循环:如果你上面的学废会了就可以安如下操作:从 111 到 nnn 枚举 i,然后将i的值赋值给tmp后再统计tmp枚举每一位 > 注意:不能直接出来i,否则i会被改变,你就会TLE了 代码 前置知识 A92267.最大最小差:需要Oier学会找到最大与最小值,关键在于for循环的控制 A29974.【循环】【入门】一尺之棰:需要Oier学会while循环的控制 A388.整数各位之和:需要oier学会如何取位数
这道题跟数字统计那道题非常相似,主要就是考察数位分离 AC
空降坐标:CP002615 来源:NOIP2013 普及组 请看代码
先打输入: 接着是核心部分: 说明:a.split() 是按空格分割字符串,str(i).count(x) 是统计str(i)中x出现的次数 最后收尾: 总代码: 时间复杂度 O(nlog10n)O(nlog_{10}n)O(nlog10 n) ,在题目的范围内是不会TLE的
提交答案之后,这里将显示提交结果~