竞赛
考级
谔谔,跟上一题是兄弟吗
TX_Bernie
这道题主要就是考察数位分离 AC
荷取青
这题又是考察分离数的各位(没打错,就是各位,不是个位,是指数的各个位),%10再/10就ok~ CODE:
hutaoQWQ
#include<ostream> #define o int o l,r,ans;o calc(o x){o y=0;while(x){if(x%10==2)y;x/=10;}return y;}o main(){scanf("%d%d",&l,&r);for(o i=l;i<=r;i)ans+=calc(i);printf("%d",ans);}
史莱克七怪
法兰西玫瑰
空降坐标:CP002598 来源:NOIP2010 普及组 请看代码
hLWawa
#include<iostream> using namespace std; int main(){ int a,b; cin >> a >> b; int s=0; for (int i=a; i<=b; i++){ if (i%102) s++; if (i/10%102) s++; if (i/100%102) s++; if (i/1000%102) s++; if (i/10000%102) s++; if (i/1000002) s++; } cout << s << endl; return 0; }
米忽悠
#if 0 思路: 这题本身不难 主要在于求一个数里有几个2 很简单的基础问题 代码见下 另外 遇到这种模拟题 如果程序的步骤比较多 建议发挥函数的优势 模块化编程 这样就条理清晰且分割成的若干子问题都很简单 #endif //模块化编程 #include <bits/stdc++.h> using namespace std; int l,r,sum; void read() { cin>>l>>r; } int check_two(int x) { int ans=0; while(x) { if(x%10==2) ans++; x/=10; } return ans; } void number() { for(int i=l;i<=r;i++){ sum+=check_two(i); } cout<<sum; } int main() { read(); number(); return 0; }
Voldemort
思路 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 有这么一个神奇的函数,叫做to string 它可以把一个函数变成string。 还有这么一个神奇的函数,叫做 count。 它可以统计 string 里某个字符出现的次数。 把[L,R][L,R][L,R]里的每个数都转成 string,统计 '2' 的个数累加。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ AC代码
唱跳坤
对于每一个数字,考虑三种影响关系: 它对低位的影响 它对高位的影响 高位对低位的影响 然后在递归中实现这三种关系的计算即可。
AC君
acgoacgo
嫌疑を避ける ~~