zoukankan      html  css  js  c++  java
  • Owl Geeks

    The owls have the following equation:

    Y = a × x2 + b × x

    With ab, and N given, they decide to put into a set the integer values of Y that are less than or equal to N and that are outputted from the equation from any positive integer x.

    With that set of numbers, they come up with the problem of finding the winning digit among them.

    The winning digit is a digit from 0 to 9 that will get the maximum number of points. How are points for a digit calculated you may ask? Well, be a bit more patient, I’m going to tell you now.

    For each number in the set, if the digit was the most repeated digit or tied with other digits as the most repeated digit in the ith number of set S, then it would get one point from that ith number.

    Can you tell the owls what the winning digit is?

    Input

    The first line of input is T – the number of test cases.

    The first line of each test case is ab, and N (1 ≤ a, b, N ≤ 105).

    Output

    For each test case, print on a line the winning digit with the maximum number of points. If there is a tie, print the minimum digit among them. If the set is empty, print  - 1.

    Example

    input

    Copy

    2
    1 2 50
    20 3 10
    

    output

    Copy

    3
    -1
    

    题意:输入a,b,n,n是a*x*x+b*x的最大范围,例如第一组,n可以为3,8,15,24,35,48,将3,8,1,5,2,4,3,5,4,8存起来(要是332存3),输出最小而且个数最多的数

    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int c[100],d[100];
    int main()
    {
        int T,a,b,n,r;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d%d%d",&a,&b,&n);
            r=0;
            memset(c,0,sizeof(c));
            memset(d,0,sizeof(d));
            for(int i=1;a*i*i+b*i<=n;i++)
                   r=i;
            if(r==0)
            {
                puts("-1");
                continue;
            }
            for(int i=1;i<=r;i++)
            {
                int s=a*i*i+b*i,v=0;
                memset(c,0,sizeof(c));
                while(s)
                {
                    c[s%10]++;
                    v=max(v,c[s%10]);
                    s/=10;
                }
                for(int j=0;j<=9;j++)
                    if(c[j]==v)
                        d[j]++;
            }
            int u=0;
            for(int i=0;i<=9;i++)
                if(d[i]>d[u])
                    u=i;
            printf("%d
    ",u);
        }
        return 0;
    }
  • 相关阅读:
    jxl 单元格画斜线
    阿里云 tomcat 配置 注意
    java 的 数据库连接测试类 (SQL server)
    关于使用jackson.jar解析JSON时,大写JSON key值发生报错的问题
    JS配置文件动态加载CSS,js和定义请求路径
    SQL SERVER 2008升级SQL SERVER 2008 R2或者10.00.1600升级10.50.1600
    IDEA 启动运行的tomcat服务器项目,只能使用localhost访问的解决方法:
    舞会
    01序列
    交错01串
  • 原文地址:https://www.cnblogs.com/zcy19990813/p/9702811.html
Copyright © 2011-2022 走看看