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

研究生复试快了,赶紧找了个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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值