Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

化学里的东东(新手参考,大神勿进)

Posted by 2004140022 at 2015-10-26 15:14:41 on Problem 2006
相信理科生并不陌生,高中化学里应该经常遇到。Ka是弱酸的电离平衡常数,无论你加什么酸,体积多少,平衡常数是不变的(好像是和温度有关,具体忘记了)。一摩尔酸会电离出 m 摩尔 H+ 和 n 摩尔酸离子(例如盐酸是Cl-,硫酸是SO4 2-),有c摩尔酸分子,电离了x摩尔,那么剩下c-x,根据方程:
Ka=m*x(H+)  *  n*x(酸离子) / c-x 调整一下,有
m*n*x*x+Ka*x-Ka*c=0;那么好了,求x,求根公式就可以了。
x=(-Ka+sqrt(Ka*Ka+4*m*n*Ka*c))/(2*m*n);
最后得出x*m就是酸的摩尔数,-log10(x*m)得出pH值。

#include<iostream>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
    double k,x,m,n,ans;
    while(1)
    {
        scanf("%lf%lf%lf%lf",&k,&x,&m,&n);
        if(m+n+k+x==0)break;
        ans=(-k+sqrt(k*k+4*m*n*k*x))/(2*n);
        printf("%.3f\n",-log10(ans));
    }
return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator