蓝桥杯备考2

简介: 蓝桥杯备考2

P8839 [传智杯 #4 初赛] 组原成绩

题目描述

花栗鼠科技大学(Hualishu University of Science and Technology, HUST)的计算机组成原理快要出分了。你现在需要计算你的组原成绩如何构成。

具体来说,组原成绩分为三部分,分别是平时出勤 t ,作业 ℎ和考试 e 。总成绩 w 由如下公式计算:

w=t×20%+h×30%+e×50%

其中我们保证 0≤h,e,t≤100

现在你知道了你的组原考试的t,h,e ,你希望计算你的总成绩。

由于教务系统的特殊性,最终成绩只能是整数,采取 直接去掉小数部分 的办法。

输入格式

一行三个整数,表示 t,h,e

输出格式

一行一个整数,为 w

输入输出样例

输入 #1  50 100 100

输出 #1   90

代码

#include<iostream>
using namespace std;
int main()
{
  int t,h,e;
  cin>>t>>h>>e;
  int w;
  w=t*0.2+h*0.3+e*0.5;
  cout<<w<<endl;
  return 0;
 }

P8841 [传智杯 #4 初赛] 竞争得分

题目描述

为了鼓励大家写出更好的作业,花栗鼠科技大学(Hualishu University of Science and Technology, HUST)的组原实验采用了竞争得分的方式。

具体来说,假设有 n 个人提交了作业,并且其中原始得分最低的人记作  ,原始得分最高的人记作 ,第 i 个人的原始得分为 ,那么第 i 个人的得分就是:

由于成绩系统的问题,最终录入的成绩只能是整数,采用直接去掉小数部分的方法

输入格式

第一行一个整数 n 表示人数。(1≤n≤1000)

第二行共n 个整数,为序列 a ,其中 表示第 i 个人的原始作业得分。(1≤ ≤1000)

输出格式

一行,共 n 个整数,表示经过更新后每个人的得分。

输入输出样例

输入 #1

3

1 2 3

输出 #1

0 50 100

代码

#include<iostream>
#include<vector>
using namespace std;
int main()
{
  int n,amax=0,amin=100000000;
  cin>>n;
  vector <int>arr(n);
  for(int i=0;i<n;i++)
   {
    cin>>arr[i];
   }
   for(int i=0;i<n;i++)
   {
    amax=(amax>arr[i])?amax:arr[i];
    amin=(amin<arr[i])?amin:arr[i];
   }
  int t=amax-amin;
  for(int i=0;i<n;i++)
  {
    arr[i]=((arr[i]-amin)*100)/t;
    if(arr[i]<0)arr[i]=0;
   }
  for(int i=0;i<n;i++)cout<<arr[i]<<' ';
  return 0;
}

P8822 [传智杯 #3 初赛] 课程报名

题目描述

传智播客推出了一款课程,并进行了一次促销活动。具体来说就是,课程的初始定价为 v 元;每报名 m 个学员,课程的定价就要提升 a 元。由于课程能够容纳的学生有限,因此报名到 n 人的时候就停止报名。

现在老师想知道,当课程停止报名时,一共可以获得多少学费呢?

输入格式

一行四个使用空格隔开的整数,分别为 n,v,m,a。

输出格式

一行一个整数,表示答案。

输入输出样例

输入 #1  5 1 1 1

输出 #1  15

说明/提示

样例解释

每卖出 1个课程,价格就会提高 1元,所以总共获得 1+2+3+4+5=15 元。

数据规模与约定

对于 50% 的数据,满足 1≤n,m,v,a≤10;

对于额外 20%的数据,满足 a=0;

对于 100% 的数据,满足 0≤n,m,v,a≤1000。

然而,由于本次比赛是 ACM 赛制,因此您必须通过 100%的数据才能够获得本题的得分,后题同。

代码

#include<iostream>
#include<vector>
using namespace std;
int main()
{
  int n,v,m,a,num=0;
  cin>>n>>v>>m>>a;
  vector <int>arr(n);
  
  for(int i=0,t=1;i<n;i++,t++)
  {
    arr[i]=v;
    if(t%m==0)v+=a;
  } 
  
  for(int i=0;i<n;i++)
  {
    num+=arr[i];
  }
  cout<<num;
  return 0;
}

P8829 [传智杯 #3 练习赛] 单位转换

题目描述

我们知道计算机的大小单位有 B, KB, MB 等,现在请你编写一个计算器进行大小单位换算。

提示,1 GB = MB = KB = B。

输入格式

输入一个字符串,由一个 0 到 1023 之间的整数,一个单位名称(大写字母),一个等于号和问号,以及第二个单位名称。

单位只有可能是 GB,MB,KB,B 之间的一个。

输出格式

输出一个数字,精确到小数点后 6 位。

输入输出样例

输入 #1  128MB=?GB

输出 #1  0.125000

输入 #2  64MB=?KB

输出 #2  65536.000000

代码

#include<iostream>
#include<cmath>
#include<string>
using namespace std;
int main()
{
  int num1;
  double num2=0;
  string per1;//单位 
  cin>>num1>>per1;
  //GB,MB,KB,B
  if(per1[0]=='G'&&per1[4]=='M')num2=num1*pow(2,10);
  if(per1[0]=='G'&&per1[4]=='K')num2=num1*pow(2,20);
  if(per1[0]=='G'&&per1[4]=='B')num2=num1*pow(2,30);
  
  if(per1[0]=='M'&&per1[4]=='K')num2=num1*pow(2,10);
  if(per1[0]=='M'&&per1[4]=='B')num2=num1*pow(2,20);  
  
  if(per1[0]=='K'&&per1[4]=='B')num2=num1*pow(2,10);   
  
  
  if(per1[0]=='B'&&per1[3]=='K')num2=num1/pow(2,10);
  if(per1[0]=='B'&&per1[3]=='M')num2=num1/pow(2,20);
  if(per1[0]=='B'&&per1[3]=='G')num2=num1/pow(2,30);
  
  if(per1[0]=='K'&&per1[4]=='M')num2=num1/pow(2,10);
  if(per1[0]=='K'&&per1[4]=='G')num2=num1/pow(2,20);
  
  if(per1[0]=='M'&&per1[4]=='G')num2=num1/pow(2,10);
  
  if(per1[1]=='B'&&per1[0]==per1[4])num2=num1;
  if(per1[1]=='B'&&per1[0]==per1[3])num2=num1;
  printf("%0.6lf\n",num2);
  return 0;
}
相关文章
|
人工智能 测试技术 BI
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
112 0
|
测试技术
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
145 0
|
7月前
|
算法 Java C语言
蓝桥杯-03-蓝桥杯学习计划
蓝桥杯-03-蓝桥杯学习计划
雅思备考day1
雅思备考day1
112 0
|
机器学习/深度学习 Java C++
蓝桥杯带刷,带刷!!!(二)
蓝桥杯带刷,带刷!!!
101 0
蓝桥杯带刷,带刷!!!(二)
|
人工智能 测试技术
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
110 0