3299
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main(){
static double exp=2.718281828;
double e=0,h=0,outcome=0;// setprecision()
char first,second,out;
double fnum,snum;
while((cin>>first>>fnum>>second>>snum)&&first!='E'){
if((first=='T')&&(second=='D')){
out='H';
e=6.11*pow(exp,(5417.7530*((1/273.16)-(1/(snum+273.16)))));
h=0.5555*(e-10.0);
outcome=fnum+h;
}// 为了简洁此处只写了一种情况,即已知T,D求H
cout<<setiosflags(ios::fixed);// setiosflags(ios::fixed)是用定点方式表示实数
cout<<setprecision(1); //使用setprecision(n)可控制输出流显示浮点数的数字个数
cout<<first<<' '<<fnum<<' '<<second<<' '<<snum<<' '<<out<<' '<<outcome;
}
return 0;
}
2159
#include <iostream>
using namespace std;
void quickSort(int s[], int l, int r){ //快速排序
if (l < r)
{
int i = l, j = r, x = s[l];
while (i < j)
{
while(i < j && s[j] >= x) // 从右向左找第一个小于x的数
j--;
if(i < j)
s[i++] = s[j];
while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数
i++;
if(i < j)
s[j--] = s[i];
}
s[i] = x;
quickSort(s, l, i - 1); // 递归调用
quickSort(s, i + 1, r);
}
}
int main(){
char a[100], b[100];//储存两行字符
int i = 0,length = 0;
int m[26], n[26];//记录每个字母出现次数
char c;
for (i = 0; i < 26; ++i){
m[i] = n[i] = 0; //数组初始化为0
}
i = 0;
cin >> a;
length = strlen(a);
cin >> b;
for(i = 0; i < length; ++i){
++m[a[i] - 65];// 计算第一行每个字母出现次数
++n[b[i] - 65];// 计算第二行每个字母出现次数
}
quickSort(m,0,25); //对m,n排序
quickSort(n,0,25);
i = 0;
while((i < 26)&&(m[i] == n[i])){
++i; //判断出现次数是否相等
}
if(i==26) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}