URAL 1823. Ideal Gas(数学啊 )
2017-06-15 12:30
316 查看
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1823
1823. Ideal Gas
Time limit: 0.5 secondMemory limit: 64 MB
Many of you know the universal method of solving simple physics problems: you have to find in a textbook an identity in which you know the values of all the quantities except for one, substitute the numbers into this identity, and calculate the unknown quantity. This problem is even easier. You know right away that the identity needed for its solution is the Clapeyron–Mendeleev equation for the state of an ideal gas. This equation relates the pressure of an ideal gas p, the amount of substance n, the volume occupied by the gas V, and the temperature T. Given three of these quantities, you have to find the fourth quantity. Note that the temperature of a gas and the volume occupied by it must always be positive.
Input
Each of the three input lines has the form “X = value”, where X is the symbol for a physical quantity and value is a nonnegative integer not exceeding 1000. The three lines specify the values of three different quantities. Pressure is specified in pascals, amount of substance in moles, volume in cubic meters, and temperature in kelvins. It is guaranteed that the temperature and volume are positive. The universal gas constant R should be taken equal to 8.314 J / (mol · K).Output
If the input data are inconsistent, output the only line “error”. If the value of X can be determined uniquely, output it in the format “X = value” with an accuracy of 10−3. If it is impossible to uniquely determine the value of X, output the only line “undefined”.Sample
input | output |
---|---|
p = 1 n = 1 V = 1 |
T = 0.120279 |
Notes
Recall that Pa = N / m2 and J = N · m.PS:
p*V = n*R*T;
代码例如以下:
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const double R = 8.314; double PP, VV, NN, TT; void findd(char a, double b) { if(a == 'p') { PP = b; } else if(a == 'V') { VV = b; } else if(a == 'n') { NN = b; } else if(a == 'T') { TT = b; } } int main() { char a; double b; while(~scanf("%c = %lf",&a, &b)) { getchar(); PP = VV = NN = TT = -1; findd(a,b); scanf("%c = %lf",&a, &b); getchar(); findd(a,b); scanf("%c = %lf",&a, &b); getchar(); findd(a,b); if(NN < 0) { printf("n = %lf\n",(PP*VV)/(R*TT)); } else if(PP < 0) { printf("p = %lf\n",(NN*R*TT)/(VV)); } else if(TT < 0 || VV < 0) { if(NN==0 && PP==0) { printf("undefined\n"); } else if(NN==0 || PP==0) { printf("error\n"); } else if(TT < 0) { printf("T = %lf\n",(PP*VV)/(NN*R)); } else if(VV < 0) { printf("V = %lf\n",(NN*R*TT)/(PP)); } } } return 0; }
相关文章推荐
- URAL 1823. Ideal Gas(数学啊 )
- URAL - 1823 Ideal Gas(审题)
- URAL 1823 — Ideal Gas
- URAL 2005. Taxi for Programmers (最短路 数学啊)
- URAL 1725. Sold Out!(数学啊 )
- URAL 1113(数学)
- URAL 1727. Znaika's Magic Numbers(数学 vector)
- URAL 1731. Dill(数学啊 )
- URAL 2025. Line Fighting 简单数学推理
- URAL 1727. Znaika's Magic Numbers(数学 vector)
- URAL 1962 In Chinese Restaurant 数学
- URAL 1731. Dill(数学啊 )
- URAL 1515 Cashmaster 数学题
- URAL 1718 . Rejudge(数学啊 )
- URAL 1161 Stripies(数学+贪心)
- URAL 2067-数学
- URAL 1157. Young Tiler (数学啊 )
- Ural 1082|Gaby Ivanushka|数学推导|快速排序|程序分析
- URAL 1295. Crazy Notions(数学啊 & 找规律)
- URAL 1617. Flat Spots(数学啊 )