CODEVS天梯青铜组题目自己的解法

来源:互联网 发布:centos7.0 网络配置 编辑:程序博客网 时间:2024/04/29 22:00
研究生复试快了,赶紧找了个OJ平台熟悉熟悉C++。算是个软广吧。我的答案都很水,基本上学过C++的都看懂,没有奇淫巧计。当然有更好解法的请务必告诉我。

一、整数处理
1、最大数和最小数

#include<iostream>using namespace std;int main(){    int n;    cin>>n;    int input[n];    for(int i=0;i<n;i++){        cin>>input[i];    }    int min = input[0];    int max = input[0];    for(int i=0;i<n;i++){        if(input[i]<min)            min = input[i];        if(input[i]>max)            max = input[i];    }    cout<<min<<" "<<max<<endl;}

2、求和

#include<iostream>using namespace std;int main(){    int n;    cin>>n;    int test[n];    int sum=0;    for(int i=0;i<n;i++){        cin>>test[i];        sum+=test[i];    }    cout<<sum<<endl;}

二、浮点数处理
1、判断浮点数是否相等

#include<iostream>#include<cmath>using namespace std;int main(){    float a,b;    cin>>a>>b;    if(abs(a-b)>=(-1E-8) && abs(a-b)<=(1E-8))        cout<<"yes"<<endl;    else         cout<<"no"<<endl;    return 0;} 

2、保留两位小数

#include<iostream>#include<cstdio>using namespace std;int main(){    double test;    cin>>test;    printf("%.2lf",test);    return 0;} 

3、机票打折

#include<iostream>#include<cmath>using namespace std;int main(){    int price;    double discount;    cin>>price>>discount;    double d_price = round((price*discount)/100.0);    cout<<d_price*10<<endl;    return 0;} //取浮点数四舍五入的值double round(double r)  {      return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5);  }  

三、字符串处理
1、寻找字串位置

#include<iostream>#include<string>using namespace std;int main(){    string a,b;    cin>>a>>b;    //不会KMP算法,偷个懒    int n=a.find(b);    //这题有毒,位置从1开始而不是0    cout<<n+1<<endl;    return 0;}

2、单词翻转

#include<iostream>#include<string>#include<stack>using namespace std;int main(){    stack<string> out;    string a;    while(cin>>a){        out.push(a);    }    while(!out.empty()){        cout<<out.top()<<" ";        out.pop();    }    cout<<endl;    return 0;}
0 0
原创粉丝点击