• 数字


    【题目描述】

    给一个关于x的多项式,并给定一个x,求该多项式在带入该x时的值最后k位数字。

    【输入描述】

    第一行两个整数n、k;

    之后的n行,每行两个数ai和bi,表示多项式的一项ai*x^bi;

    最后一行一个整数x。

    【输出描述】

    输出k行,按顺序输出该多项式带入x后值的最后k位数字,若不足k位,则高位补零。

    【输入样例】

    2 1

    3 2

    1 5

    3

    【输出样例】

    0

    【数据范围及提示】

    对于100%的数据,1 <= n <= 100000,1 <= ai,bi,x <= 10^9,1 <= k <= 8。

    #include<cstdio>
    #include<iostream>
    #define N 100100
    using namespace std;
    int n,k,ki=1,x,cnt=0;
    long long ans;
    int a[N],b[N],an[10];
    long long ksm(long long p,long long q)
    {
        long long sum=1;
        while (p>0)
          {
               if (p%2) sum=sum*q%ki;
               q=q%ki*q%ki;
               p/=2;
          }
        return sum;
    }
    void print()
    {
        while (ans>0)
          {
               an[++cnt]=ans%10;
               ans/=10;
          }
        if (cnt<k)
          {
              for (int i=1;i<=k-cnt;i++)
                printf("0
    ");
          }
        for (int i=cnt;i>=1;i--)
          printf("%d
    ",an[i]);
    }
    int main()
    {
      freopen("digits.in","r",stdin);
      freopen("digits.out","w",stdout);
      scanf("%d%d",&n,&k);
      for (int i=1;i<=k;i++) ki*=10;
      for (int i=1;i<=n;i++) scanf("%d%d",&a[i],&b[i]);
      scanf("%d",&x);
      for (int i=1;i<=n;i++) ans=(ans+ksm(b[i],x)*a[i]%ki)%ki;
      print();
      fclose(stdin);
      fclose(stdout);
      return 0;    
    }
    I'm so lost but not afraid ,I've been broken and raise again
  • 相关阅读:
    Saltstack module gem 详解
    Saltstack module freezer 详解
    Saltstack module firewalld 详解
    Saltstack module file 详解
    Saltstack module event 详解
    Saltstack module etcd 详解
    Saltstack module environ 详解
    Saltstack module drbd 详解
    Saltstack module dnsutil 详解
    获取主页_剥离百度
  • 原文地址:https://www.cnblogs.com/sjymj/p/5794274.html
Copyright © 2020-2023  润新知