zoukankan      html  css  js  c++  java
  • PKU3331

    #include<string.h>
    #include 
    <stdio.h>

    struct Num
    {
        
    int dig;
        
    char n[1024];
    }
    ;

    int n, m, cnt;
    Num num[
    367];

    Num mul(Num r, 
    int x)
    {
        Num numx
    =r;

        
    int a, b, i;
        
    int c=0;
        
    for(i=0;i<numx.dig;i++)
        
    {
            a
    =(int)(numx.n[i]);
            b
    =a*x+c;
            
    if(b>=10)
            
    {
                c
    =b/10;
                b
    %=10;
            }

            
    else c=0;
            numx.n[i]
    =(char)(b);
        }

        
    if(c>0)
        
    {
            numx.n[numx.dig]
    =char(c);
            numx.dig
    ++;
        }

        
    return numx;
    }

    Num add(Num num1, Num num2)
    {

        Num numx
    =num1;
        numx.dig
    =num1.dig>num2.dig?num1.dig:num2.dig;    
        
        
    int a, b, i;
        
    int c=0;
        
    for(i=0;i<numx.dig;i++)
        
    {
            a
    =(int)(numx.n[i]);
            b
    =a+(int)num2.n[i]+c;
            
    if(b>=10)
            
    {
                c
    =b/10;
                b
    %=10;
            }

            
    else c=0;
            numx.n[i]
    =(char)(b);
        }

        
    if(c>0)
        
    {
            numx.n[numx.dig]
    =char(c);
            numx.dig
    ++;
        }

        
    return numx;
    }

    void cal()
    {
        
    int i;
        
    for(i=0;i<num[n].dig;i++)
        
    {
            
    if(num[n].n[i]==char(m))
                cnt
    ++;
        }

    }


    int main()
    {    
        
    int i,j;
        num[
    0].n[0]=num[1].n[0]=1;
        num[
    0].n[1]=num[1].n[1]=0;
        num[
    0].dig=num[1].dig=1;
        
    for(j=2;j<=366;j++)
        
    {
            num[j].dig
    =1;
            memset(num[j].n,
    0,sizeof(num[j].n));
            
    int x=j, dd=0;
            
    while(x>0)
            
    {
                Num hNum
    =num[j-1];
                
    for(i=0;i<dd;i++)
                    hNum
    =mul(hNum,10);
                hNum
    =mul(hNum,x%10);
            
                num[j]
    =add(num[j],hNum);

                dd
    ++;
                x
    /=10;
            }

        }

    /*
        while(scanf("%d",&j))
        {
            for(i=num[j].dig-1;i>=0;i--)
                printf("%d",num[j].n[i]);
            printf("\n");
        }
    */

        
    int t;
        scanf(
    "%d",&t);
        
    while(t--)
        
    {
            cnt
    =0;
            scanf(
    "%d%d",&n,&m);
            cal();
            printf(
    "%d\n",cnt);
        }

        
    return 0;
    }

  • 相关阅读:
    英语语法学习
    react-hook
    rrweb手机端录屏,pc端使用
    uni-app
    日期
    Mongodb 保存地理信息 并实现范围检索
    webpack2.2API阅读笔记
    react-lazyload
    项目中常用的各个依赖包的解释
    Android-----test----monkeyrunner
  • 原文地址:https://www.cnblogs.com/SQL/p/913328.html
Copyright © 2011-2022 走看看