同样今天补的,
A:就是将第一个字母变成大写,水题~
代码:
#include<cstdio>
#include<cstring>
#define MAX 1001
char str[MAX];
int main()
{
while(scanf("%s",&str)!=EOF)
{
if(str[0]>='a'&&str[0]<='z')
str[0]='A'+str[0]-'a';
printf("%s\n",str);
}
return 0;
}
B题:
这个题的就是求一个最小的差值,注意题目要求的分母分子最小。
代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
using namespace std;
double x,y;
int n;
int main()
{
while(scanf("%lf%lf%d",&x,&y,&n)!=EOF)
{
if(x==0)
{
printf("0/1\n");
continue;
}
double pos=x/y,last=100000;
int ansx=0,ansy=0;
for(int i=1;i<=n;i++)
{
for(int j=i*1.0*pos+1;j>=0;j--)
{
double ita=j*1.0/i;
double itb=fabs(ita-pos);
// printf("A %d %d %lf %lf %lf\n",j,i,ita,itb,last);
if(ita<pos&&itb>last)
break;
if(itb<=last)
{
if(itb==last)
{
if(j<=ansy)
{
if(j==ansy)
{
ansx=min(ansx,i);
}
else
{
ansx=i;
ansy=j;
}
}
}
else
{
last=itb;
ansx=i;
ansy=j;
}
}
}
for(int j=i*1.0*pos+1;;j++)
{
double ita=j*1.0/i;
double itb=fabs(ita-pos);
// printf("B %d %d %lf %lf %lf\n",j,i,ita,itb,last);
if(itb>last)
break;
if(itb<last)
{
last=itb;
ansx=i;
ansy=j;
}
}
}
printf("%d/%d\n",ansy,ansx);
}
return 0;
}