1207 The 3n + 1 problem
#include<iostream>
using namespace std;
int cycle(int i)
{
int count=1;
while(i!=1)
{
count++;
if(i%2)
i=3*i+1;
else
i/=2;
}
return count;
}
int main()
{
int a,b;
while(cin>>a>>b)
{
int x=a<b?a:b;
int y=a>b?a:b;
int Maxcycle=0;
//注意max的初始化放在循环内部,每次输入一组数,重置为0
for(int i=x;i<=y;i++)
{
int temp=cycle(i);
if(Maxcycle<temp)
Maxcycle=temp;
}
cout<<a<<“ ”<<b<<“ ”<<Maxcycle<<endl;
}
return 0;
}
3299 Humidex
#include<iostream>
#include<math.h>
#include<string>
#include<iomanip>//设置输出精度需用到
using namespace std;
int main()
{
char alpha;
double t, d, h;
int i;
for (;;)
{
t = d = h = 200;
for (i = 0; i<2; i++)
{
cin >> alpha;
if (alpha == 'E')
return 0;
else if (alpha == 'T')
cin >> t;
else if (alpha == 'D')
cin >> d;
else if (alpha == 'H')
cin >> h;
}
if (h == 200)
h = t + 0.5555*(6.11*exp(5417.7530*(1 / 273.16 - 1 / (d + 273.16))) - 10);
else if (t == 200)
t = h - 0.5555*(6.11*exp(5417.7530*(1 / 273.16 - 1 / (d + 273.16))) - 10);
else if (d == 200)
d = 1 / ((1 / 273.16) - ((log((((h - t) / 0.5555) + 10.0) / 6.11)) / 5417.7530)) - 273.16;
cout << setprecision(1) << fixed << "T " << t << " D " << d << " H " << h << endl;
}
return 0;
}