zoukankan      html  css  js  c++  java
  • 奇怪的贸易

    题目描述

    刚结束了CS战斗的小D又进入了EVE的游戏世界,在游戏中小D是一名商人,每天要做的事情就是在这里买东西,再运到那里去卖.这次小D来到了陌生的X星,X星上有n种货物,小D决定每种都买走一些,他用ai来表示第i种货物购买的数量,X星人对物品的单价有特别的决定方式.他们首先会选择一个基本价x,第一种物品单价为x,第二种物品单价为x2,第三种物品单价为x3……第i种物品单价为xi.结算总价时,你还需要给他们一笔手续费a0,小D不知道自己带的钱是否能够进行这笔交易,所以请你帮助他计算这笔交易他要支付的总金额是多少.

    输入

    x n
    a0
    a1
    a2
    .
    .
    .
    an
    第一行两个数分别表示基准价x (x<=10),物品种数n (n<=100000)
    第二行一个数,手续费a0 (a0<=100)
    接下来的n行每行一个数,第i行表示第i种物品购买的数量(ai<=100)
    输出

    输出结果的最后100位,若不足100位请高位用零补足
    输入样例

    2 3
    4
    3
    2
    1
    输出样例

    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026

    说明

    对20%的数据,n<=10 对50%的数据,n<=200 对100%的数据,n<=100000
    .
    .
    .
    .
    .
    .
    分析
    对于第i个物品的单价为xix^i
    那么第i个物品要给的钱为 aixia_i*x^i
    把它们求和再加上a0a_0
    所得的值即为答案
    要用高精度
    .
    .
    .
    .
    .
    程序:

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int x,n,a[100001],jz[101],sum[101];
    
    
    void jia(int y)
    {
    	int w=0;
    	for (int i=1;i<=100;i++)
    	{
    		sum[i]=sum[i]+jz[i]*y+w;
            w=sum[i]/10;
            sum[i]%=10;
    	}
    }
    
    void cheng()
    {
    	int w=0;
        for (int i=1;i<=100;i++)
    	{
    		jz[i]=jz[i]*x+w;
    		w=jz[i]/10;
    		jz[i]%=10;
    	}
    }
    
    int main()
    {
    	scanf("%d%d",&x,&n);
    	scanf("%d",&sum[1]);
    	for (int i=1;i<=n;i++)
    		scanf("%d",&a[i]);
    	jz[1]=x;
    	for (int i=1;i<=n;i++)
    	{
    		jia(a[i]);
    		cheng();
    	}
    	for (int i=100;i>=1;i--)
    		printf("%d",sum[i]);
    	return 0;
    }
    
  • 相关阅读:
    C#面向对象的三大特性概述
    SQL Server 低版本还原高版本的数据库
    将表转化成脚本的存储过程
    iis安装失败解决方法
    kafka consumer 配置详解
    C#解析XML文件
    blat
    REST接口POST方法发送文件到服务器(C#)
    http://www.codeproject.com/Questions/117324/uploadfileincwithHttpWebRequest
    PDF Password Remover
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/10292846.html
Copyright © 2011-2022 走看看