当前位置:编程学习 > C/C++ >>

cf#172div2

[cpp] 
/* 
 
B题, 
题意:给你x,y,n; a(a>=0),b(b<=n),要你找出离 x/y 最近的分数  a/b 。 
     如果存在多个结果,则取分母最小的,如果还有多个结果,则取分子最小的 
解析:从 1 到 n 的分母进行遍历,然后对每一个分母找出最接近的分子,其中分子不需要每次从0开始算。。。  
      小学知识:分子相同,分母大的反而小。。。。  
 
*/  
#include<iostream>  
#include<cstdio>  
#include<cmath>  
using namespace std;  
  
int main(){  
    double x,y,n;  
    while(cin>>x>>y>>n){  
        double p=0,q=1,a=0,b=1,ans=99999999;  
        while(b<=n){  
            while(abs(a/b-x/y)>abs((a+1)/b-x/y))  
                a++;  
            if(abs(a/b-x/y)<ans){  
                p=a; q=b; ans=abs(a/b-x/y);  
            }  
            if(ans==0) break;      
            b++;  
        }  
        cout<<p<<"/"<<q<<endl;     
    }  
}  
[cpp] view plaincopy
/* 
 
A 题 
题意:给你字符串,第一个字母一定要是大写的形式输出。。  
 
*/   
#include<iostream>  
#include<cstdio>  
#include<string>  
#include<algorithm>  
#define manx 100009  
using namespace std;  
  
int main(){  
    string str;  
    while(cin>>str){  
        if(str[0]<='z'&&str[0]>='a')  
        str[0]=(str[0]-'a')+'A';  
        cout<<str<<endl;  
    }  
}  
/* 
 
ApPLe 
 
konjac 
 
*/  
 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,