日常学习的一天3.4

日结3.4

1.设 a 1 a_1 a1>0, a n a_n an = l n ( 1 + a n ) ln(1+a_n) ln(1+an)(n=1,2, ⋯ {\cdots} ), 求 lim ⁡ x → ∞ a n + 1 − a n a n a n + 1 {\lim_{x \to \infty} \frac{a_{n+1} - a_n} {a_na_{n+1}}} xlimanan+1an+1an.

lim ⁡ x → ∞ a n + 1 − a n a n a n + 1 {\lim_{x \to \infty} \frac{a_{n+1} - a_n} {a_na_{n+1}}} xlimanan+1an+1an

= lim ⁡ x → ∞ l n ( 1 + a n ) − a n a n l n ( 1 + a n ) {\lim_{x \to \infty} \frac{ln(1+a_n)-a_n} {a_nln(1+a_n)}} xlimanln(1+an)ln(1+an)an
= l m a o a n = t \xlongequal[lmao]{a_n = t} an=t lmao
lim ⁡ x → ∞ l n ( 1 + t ) − t t l n ( 1 + t ) {\lim_{x \to \infty} \frac{ln(1+t)-t} {tln(1+t)}} xlimtln(1+t)ln(1+t)t = lim ⁡ x → ∞ l n ( 1 + t ) − t t 2 {\lim_{x \to \infty} \frac{ln(1+t)-t} {t^2}} xlimt2ln(1+t)t
= lim ⁡ x → ∞ 1 1 + t − 1 2 t {\lim_{x \to \infty} \frac{ \frac{1} {1+t} -1} {2t}} xlim2t1+t11
= − 1 2 {\frac {-1}{2}} 21

2.569溶液模拟
题目描述
小 Y 虽然有很多溶液,但是还是没有办法配成想要的溶液,因为万一倒错了就没有办法挽回了。他从网上下载了一个溶液配制模拟器:模拟器在计算机中构造一种虚拟溶液,然后可以虚拟地向当前溶液中加入一定浓度、一定质量的这种溶液,模拟器会快速地算出倒入后虚拟溶液的浓度和质量。

​ 模拟器的使用步骤如下:

​ (1) 为模拟器设置一个初始质量和浓度 V 0 V_0 V0 C 0 C_0 C0%(0≤ C 0 C_0 C0≤100)。

​ (2)进行一系列的操作,模拟器支持的两种操作:一种是 P(v,c) 操作,表示向当前的虚拟溶液中加入质量为 v 、浓度为 c 的溶液;另一种是 Z 操作,即撤销上一步 P 操作。

输入
第 1 行两个整数 V0 、C0。

​ 第 2 行 1 个整数 n ,n≤10000,表示操作数。

​ 接下来的 n 行,每行一条操作,格式为:P v c 或 Z。当只剩下初始溶液的时候,再撤销就没有用了。

​ 任意时刻质量都不会超过 2 31 2^{31} 231−1。

输出
​ 输出 n 行,每行两个数 V i V_i Vi C i C_i Ci,之间用一个空格隔开,其中 V i V_i Vi 为整数, C i C_i Ci 为实数(保留 5 位小数)。其中,第 i 行表示第 i 次操作后的溶液质量和浓度。

样例输入

100 100
2
P 100 0
Z

样例输出

200 50.00000
100 100.00000

代码如下

#include<iostream>
#include<stack>
#include<cstdio>
using namespace std;

struct node{
    double v,c,salt;
};
inline int read() {
    int k = 0 , f = 1 ; char c = getchar() ;
    for( ; !isdigit(c) ; c = getchar())
      if(c == '-') f = -1 ;
    for( ; isdigit(c) ; c = getchar())
      k = k*10 + c-'0' ;
    return k*f ;
}
int main() {
    double v0,c0,salt0;
    stack<node> s;
    cin>>v0>>c0;
    salt0 = v0*c0 / 100;
    int n;
    cin>>n;
    for(int i=0;i<n;i++) {
        char t;
        cin>>t;
        if(t=='P') {
            double vt,ct,saltt;
            vt = (double) read();
            ct = (double) read();
            saltt = vt * ct / 100.0;
            v0 += vt;
            salt0 += saltt;
            s.push({vt,ct,saltt});
        }
        if(t=='Z') {
            if(!s.empty()) {
                v0 -= s.top().v;
                salt0 -= s.top().salt;
                s.pop();
            }
        }
        printf("%d %.5f\n",(int)v0,salt0/v0 *100.00);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值