zoukankan      html  css  js  c++  java
  • 九度oj 题目1358:陈博的平均主义

    题目描述:
    在JOBDU团队里,陈博是最讲平均主义的人了,但并不是像梁山好汉那样能够做到有钱同花,有肉同吃,毕竟,他还是被家里的领导管着的……陈博的平均主义,就只能体现在他对数字的喜好了。陈博特别喜欢一类“平均数”,“平均数”的具体定义为:
    对于一个数字,当其以十进制形式表示时,我们可以将其每一位的数字分为两堆,两堆数字的和是相等的。
    例如,数字363就是一个理想的平均数,因为我们可以将其分为相等的两堆{3, 3}, {6}。
    现在陈博就要考考你了,看你是否掌握了他的平均主义。假如给你一个整数范围[A, B],你是否能找出,在这个范围内,究竟有多少“平均数“?
    输入:
    每个测试文件包含多个测试案例,每个测试案例一行,每行包括两个整数A、B,其中[A,B]这个待查看的整数范围。其中我们能保证1 <= A <= B <= 109,且0 <= B – A <= 105
    输出:
    对于每个整数范围[A, B],返回一个整数,表明这个整数范围内有多少个整数是陈博所喜欢的“平均数”。
    样例输入:
    1 50
    1 1000
    样例输出:
    4
    135

    本来以为有更精妙的方法,但参考了一下别人的,直接遍历判断就可以
    代码如下
     1 #include <cstdio>
     2 #include <cmath>
     3 
     4 int a, b;
     5 int num[35];
     6 
     7 bool find(int sum, int n) {
     8     if(sum == 0) {
     9         return true;
    10     }
    11     if(n < 0 || sum < 0) {
    12         return false;
    13     }
    14     return find(sum,n-1) || find(sum-num[n],n-1);
    15 }
    16 
    17 bool isA(int m) {
    18     int j = 0;
    19     int sum = 0;
    20     while(m >= 10) {
    21         int mo = m % 10;
    22         num[j++] = mo;
    23         sum = sum + mo;
    24         m = m/10;
    25     }
    26     num[j++] = m;
    27     sum = sum + m;
    28     if(sum&1) {
    29         return false;
    30     }
    31     else {
    32         int bsum = sum / 2;
    33         return find(bsum, j-1);
    34     }
    35 
    36 }
    37 
    38 int main() {
    39     while(scanf("%d %d",&a, &b) != EOF) {
    40         int cnt = 0;
    41         for(int i = a; i <= b; i++) {
    42             if(isA(i)) {
    43                 cnt++;
    44             }
    45         }
    46         printf("%d
    ",cnt);
    47     }
    48     return 0;
    49 }
  • 相关阅读:
    牛人对IC验证的独特理解(转载)
    soc验证扫盲(转载)
    .vimrc
    matchit匹配
    格式化verilog/systemverilog代码插件
    gvim plugin管理
    .alias
    .cshrc
    get_result --perl
    run_regress --perl
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5806537.html
Copyright © 2011-2022 走看看