当前位置: 代码迷 >> 综合 >> 程序设计与算法 | (6) Lecture(3) OJ作业
  详细解决方案

程序设计与算法 | (6) Lecture(3) OJ作业

热度:94   发布时间:2024-01-15 00:15:26.0

OJ地址

Lecture (3)包含一下十道编程题,可以在上面的OJ提交。

012:奇偶数判断

在这里插入图片描述

#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
    int n;cin>>n;if (n%2)cout<<"odd"<<endl;elsecout<<"even"<<endl;  return 0;
}

013:求一元二次方程的根

在这里插入图片描述

#include <iostream>
#include <cmath>
using namespace std;int main(int argc, const char * argv[]) {
    double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);double delt = b*b-4*a*c;double real = -b/(2*a);if (b==0)real = -real;if (a<0)a = -a;double x1,x2;double fake;if(delt==0)printf("x1=x2=%.5lf\n",real);else if (delt>0){
    x1 = real+sqrt(delt)/(2*a);x2 = real-sqrt(delt)/(2*a);printf("x1=%.5lf;x2=%.5lf\n",x1,x2);}else{
    fake = sqrt(-delt)/(2*a);printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi\n",real,fake,real,fake);}return 0;
}

014:点和正方形的关系

在这里插入图片描述

#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
    int x,y;cin>>x>>y;if(x>=-1&&x<=1&&y>=-1&&y<=1)cout<<"yes"<<endl;elsecout<<"no"<<endl;return 0;
}

015:苹果和虫子2

在这里插入图片描述

#include <iostream>
#include <cmath>
using namespace std;int main(int argc, const char * argv[]) {
    int n,x,y;cin>>n>>x>>y;int count = ceil(double(y)/x); //ceil浮点数向上取整int remain = n-count;if(remain>0)cout<<remain<<endl;elsecout<<0<<endl;return 0;
}

016:简单计算器

在这里插入图片描述

#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
    int a,b;char c;cin>>a>>b>>c;switch (c) {
    case '+':cout<<a+b<<endl;break;case '-':cout<<a-b<<endl;break;case '*':cout<<a*b<<endl;break;case '/':if(b)cout<<a/b<<endl;elsecout<<"Divided by zero!"<<endl;break;default:cout<<"Invalid operator!"<<endl;break;}return 0;
}

017:

在这里插入图片描述

#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
    int n;int sum=0;scanf("%d",&n);int count = n;int m;while(count--){
    scanf("%d",&m);sum+=m;}printf("%d %.5lf\n",sum,double(sum)/n);return 0;
}

018:整数序列的元素最大跨度值

在这里插入图片描述

#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
    int n;cin>>n;int m;int maxN=0,minN=2000;while(n--){
    cin>>m;if(m>maxN)maxN=m;if(m<minN)minN=m;}cout<<maxN-minN<<endl;return 0;
}

019:奥运奖牌计数

在这里插入图片描述

#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
    int days;int gold,sliver,tong;cin>>days;int golds=0,slivers=0,tongs=0;while(days--){
    cin>>gold>>sliver>>tong;golds += gold;slivers += sliver;tongs += tong;}cout<<golds<<" "<<slivers<<" "<<tongs<<" "<<golds+slivers+tongs<<endl;return 0;
}

020:乘方计算

在这里插入图片描述

#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
    int a,n;cin>>a>>n;int prod=1;int i;for(i=1;i<=n;i++)prod *= a;cout<<prod<<endl;return 0;
}

021:鸡尾酒疗法

在这里插入图片描述

#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
    int n;cin>>n;int a,b;cin>>a>>b;double ratio = double(b)/a;n -= 1;double ratio1;while (n--) {
    cin>>a>>b;ratio1 = double(b)/a;if(ratio1-ratio>0.05)cout<<"better"<<endl;else if(ratio-ratio1>0.05)cout<<"worse"<<endl;elsecout<<"same"<<endl;}return 0;
}
  相关解决方案