noip第8课作业
1. 计算书费
【问题描述】下面是一个图书的单价表:
计算概论 28.9 元/本
数据结构与算法 32.7 元/本
数字逻辑 45.6元/本
C++程序设计教程 78 元/本
人工智能 35 元/本
计算机体系结构 86.2 元/本
编译原理 27.8元/本
操作系统 43 元/本
计算机网络 56 元/本
JAVA程序设计 65 元/本
给定每种图书购买的数量,编程计算应付的总费用。
输入:输入一行,包含10个整数(大于等于0,小于等于100),分别表示购买的《计算概论》、《数据结构与算法》、《数字逻辑》、《C++程序设计教程》、《人工智能》、《计算机体系结构》、《编译原理》、《操作系统》、《计算机网络》、《JAVA程序设计》的数量(以本为单位)。每两个整数用一个空格分开。
输出:输出一行,包含一个浮点数f,表示应付的总费用。精确到小数点后一位。
【样例输入】
1 5 8 10 5 1 1 2 3 4
【样例输出】
2140.2
#include<iostream>
#include<iomanip>
using namespace std;
int main() {
float a[]={28.9,32.7,45.6,,,86.2,27.8,,,},sum=;
int i,num;
for(i=;i<;i++){
cin >> num;
sum +=num*a[i];
}
cout << fixed << setprecision() << sum << endl; return ;
}
2. 输出序列前N项的数据和
【题目描述】
有一组序列的数是:1、2、9、33、126、477,……,请同学们认真观察数值的规律。现要求:指定项数为任意的N项,计算:
1)第N项的数据;
2)输出前N项数据的和。
输入中只有一行,包含1个整数N(其中3<=N<=15)为这个序列的项数。
输出共有二行:
第一行为这个序列第N项的数据;
第二行为这个序列前N项的数据和。
【要求】每一行的输出数据都从第一列开始。
【样例输入1】
6
【样例输出1】
477
648
【样例输入2】
10
【样例输出2】
98577
133893
#include<iostream>
using namespace std;
int a[];
int main() {
int i,n,k,sum;
cin >> n;
if(n==) {
cout<<<<endl<<;
}
if(n==) {
cout<<<<endl<<;
}
if(n>=) {
a[]=;
a[]=;
sum=;
for(i=; i<=n; i++) {
a[i]=(a[i-]+a[i-])*;
sum +=a[i];
}
}
cout<<a[n]<<endl<<sum;
return ;
}
1. 歌手投票
【问题描述】
学校推出10名歌手,校学生会想知道这10名歌手受欢迎的程度,设计一个投票箱,让每一个同学给自己喜欢的歌手投票,为了方便,学生会把10名歌手用1-10进行编号,这样,同学们只要用编号进行投票,现在,学生会找到你,帮助统计一下每个歌手获得的票数。
输入:两行第一行是一个整数n,表示参加投票的人数,第二行是n个整数,每个数的取值范围为[1-10],表示喜欢的歌手。
输出:两行,第一行为1-10十个数字,表示选手编号,第二行十个数字,表示各个编号选手获得的票数。
【样例输入】
13
2 8 1 2 6 4 5 9 3 10 5 3 2
【样例输出】
1 2 3 4 5 6 7 8 9 10
1 3 2 1 2 1 0 1 1 1
#include<iostream>
#include<iomanip>
#include<math.h>
using namespace std;
/*
学校推出10名歌手,校学生会想知道这10名歌手受欢迎的程度,
设计一个投票箱,让每一个同学给自己喜欢的歌手投票,
为了方便,学生会把10名歌手用1-10进行编号,这样,
同学们只要用编号进行投票,现在,学生会找到你,
帮助统计一下每个歌手获得的票数。 输入:两行第一行是一个整数n,表示参加投票的人数,
第二行是n个整数,每个数的取值范围为[1-10],表示喜欢的歌手。 输出:两行,第一行为1-10十个数字,表示选手编号,
第二行十个数字,表示各个编号选手获得的票数。
*/ int main(){
int n;
cin>>n;
int a;
int arr[]={,,,,,,,,,}; for(int i=;i<n;i++){
cin>>a;
switch(a){
case :
arr[]++;
break;
case :
arr[]++;
break;
case :
arr[]++;
break;
case :
arr[]++;
break;
case :
arr[]++;
break;
case :
arr[]++;
break;
case :
arr[]++;
break;
case :
arr[]++;
break;
case :
arr[]++;
break;
case :
arr[]++;
break;
default:
cout<<"没有你要投的选手"<<endl;
}
}
for(int i=;i<;i++){
cout<<i+<<" ";
if(i==){
cout<<endl;
}
}
for(int i=;i<;i++){
cout<<arr[i]<<" ";
} return ;
}
2. 校门外的树
【问题描述】
某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。
由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
输入:第一行有两个整数L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
对于20%的数据,区域之间没有重合的部分;
对于其它的数据,区域之间有重合的情况。
输出:包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。
【样例输入】
500 3 150 300 100 200 470 471
【样例输出】
298
#include<iostream>
using namespace std;
int a[];
int main() {
int i,j,l,m,q,z,count=;
cin >> l >> m;
for(i=; i<=l; i++){
a[i]=;
}
for(i=; i<m; i++) {
cin >> q >> z;
for(j=q; j<=z; j++) {
if(a[j]==) {
a[j]=-a[j];
}
}
}
for(i=; i<=l; i++) {
if(a[i]) count++;
}
cout << count<<endl;
return ;
}
3. 石头剪刀布
【问题描述】
石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。
一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期不断循环的。请问,小A和小B比了N轮之后,谁赢的轮数多?
输入:输入包含三行。
第一行包含三个整数:N,NA,NB,分别表示比了N轮,小A出拳的周期长度,小B出拳的周期长度。0 < N,NA,NB < 100。
第二行包含NA个整数,表示小A出拳的规律。
第三行包含NB个整数,表示小B出拳的规律。
其中,0表示“石头”,2表示“剪刀”,5表示“布”。相邻两个整数之间用单个空格隔开。
输出:输出一行,如果小A赢的轮数多,输出A;如果小B赢的轮数多,输出B;如果两人打平,输出draw。
【样例输入】
10 3 4
0 2 5
0 5 0 2
【样例输出】
A
【提示】对于测试数据,猜拳过程为:
A:0 2 5 0 2 5 0 2 5 0
B:0 5 0 2 0 5 0 2 0 5
A赢了4轮,B赢了2轮,双方打平4轮,所以A赢的轮数多。
#include<iostream>
using namespace std;
int main() {
/*int i,N,NA,NB,a[100],b[100],awin = 0,bwin = 0;
cin >> N >> NA >> NB;
for(i=0;i<NA;i++) cin >> a[i];
for(i=0;i<NB;i++) cin >> b[i];
for(i=0;i<N;i++){
if((a[i%NA]==0&&b[i%NB]==2)||
(a[i%NA]==5&&b[i%NB]==0)||
(a[i%NA]==2&&b[i%NB]==5)){
awin++;
}
if((b[i%NB]==0&&a[i%NA]==2)||
(b[i%NB]==5&&a[i%NA]==0)||
(b[i%NB]==2&&a[i%NA]==5)){
bwin++;
}
}
if(awin>bwin){
cout << "A"<<endl;
}else if(awin<bwin){
cout << "B";
}else{
cout << "draw";
}*/ int j,la,lb,af=,bf=,h;
cin>>j>>la>>lb;
int a[la];
int b[lb];
for(int i=;i<la;i++){
cin>>a[i];
}
for(int i=;i<lb;i++){
cin>>b[i];
}
for(int k=;k<j;k++){
//a赢得次数
if((a[k%la]==&&b[k%lb]==)||(a[k%la]==&&b[k%lb]==)||(a[k%la]==&&b[k%lb]==)){
af=af+;
}
//b赢得次数
if((b[k%lb]==&&a[k%la]==)||(b[k%lb]==&&a[k%la]==)||(b[k%lb]==&&a[k%la]==)){
bf=bf+;
}
} if(af>bf){
cout<<"A";
}else if(bf>af){
cout<<"B";
}else{
cout<<"draw";
}
return ;
}
noip第8课作业的更多相关文章
- noip第5课作业
1. 计算税收 [问题描述] 对某产品征收税金,在产值1万元以上收税5%:在1万元以下但在5000元或者以上的征收税3%:在5000元以下但在1000元或以上征收税2%:1000元以下的免收税 ...
- noip第34课作业
1. 信息加密 [问题描述] 在传递信息的过程中,为了加密,有时需要按一定规则将文本转换成密文发送出去.有一种加密规则是这样的:1. 对于字母字符,将其转换成其后的第3个字母.例如:A→D,a→ ...
- noip第33课作业
1. 排座椅 [问题描述] 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同 ...
- noip第29课作业
1. 钢条切割 [问题描述] 一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi.那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大. ...
- noip第28课作业
分段数列 [问题描述] 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求. 输入格式: 输入第1行包含两个正整 ...
- noip第27课作业
1. 繁忙的都市 [问题描述] 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个 ...
- noip第26课作业
1. 信使 [问题描述] 战争时期,前线有n个哨所,每个哨所可能会与其他若干个哨所之间有通信联系.信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位).指挥部设在第一个哨所.当指 ...
- noip第25课作业
1. 求一个有向图所有顶点入度的和 输入有向图的顶点个数,边数以及各顶点之间的关联情况,要求求出这个有向图的所有顶点入度的总和. [输入格式] 第1行:2个空格分开的整数n(2<=n< ...
- noip第24课作业
1. 马走日 [问题描述] 马在中国象棋以日子形规则移动.请编写一段程序给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. ...
- noip第23课作业
1. 营救 铁塔尼号遇险了!他发出了求救信号.距离最近的哥伦比亚号收到了讯息,时间就是生命,必须尽快赶到那里. 通过侦测,哥伦比亚号获取了一张海洋图.这张图将海洋部分分化成n*n个比较小的单位,其 ...
随机推荐
- Becoming inspired (2) - ASC 2017 March 25
Becoming inspired - part 2 @ Advanced Studio Classroom Vol: 2017 MARCH 25 7.Who was I like as a chil ...
- eclipse 使用tomcat7.0建立Dynamic Web Project 时 web.xml的问题
最近使用Eclipse helios版本结合tomcat7.0建立动态的web项目时,发现在WEB-INF下的web.xml没有了. 解决方案: 建立web项目时,建到第三个下一步时,将 Genera ...
- mongodb first
use [database] 使用数据库,新增文档后,数据库被自动创建 show dbs 显示所有数据库 db.[document].insert() 插入数据库 例:db.persons.inser ...
- KKT条件的物理意义(转)
最好的解释:https://www.quora.com/What-is-an-intuitive-explanation-of-the-KKT-conditions# 作者:卢健龙链接:https:/ ...
- Linux就业技术指导(二):简历项目经验示例
一,期中项目经验示例 1.1 新服务器上线搭建系统环境 1,根据现有结构部署工具(PXE+kickstart) 2,结合应用系统需求定制部署模版 3,制作系统优化等一键执行脚本 4,自动化部署实施 5 ...
- Top K算法
应用场景: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节. 假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果 ...
- TIME_WAIT状态的作用
TIME_WAIT状态: 主动关闭的那端最后经历的状态,一般为2MSL秒(1~4分钟). 两个原因: 保证当最后一个ack丢失后,能收到对端重传的fin包. 保证ack包消失,不会影响下一个连接. 关 ...
- 【校招面试 之 网络】第1题 TCP和UDP
TCP UDP1.TCP与UDP基本区别 (1)基于连接与无连接 (2)TCP要求系统资源较多,UDP较少: (3)UDP程序结构较简单(头只有8个字节:源端口号.目标端口号.长度.差错) ...
- [leetcode]124. Binary Tree Maximum Path Sum二叉树最大路径和
Given a non-empty binary tree, find the maximum path sum. For this problem, a path is defined as any ...
- metasploit渗透测试指南概要整理
一.名词解释 exploit 测试者利用它来攻击一个系统,程序,或服务,以获得开发者意料之外的结果.常见的 有内存溢出,网站程序漏洞利用,配置错误exploit. payload 我们想让被攻击系统执 ...