noip第9课作业
1. 打印乘法表
【问题描述】
用for循环实现输出1至9的乘法表
【样例输出】
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
#include<iostream>
using namespace std;
int main(){
for(int i=;i<=;i++){
for(int j=;j<=i;j++){
cout<<j<<"*";
cout<<i<<"="<<j*i<<" ";
}
cout<<endl;
}
return ;
}
2. 矩阵交换
【问题描述】
给定一个5*5的矩阵(数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换后的结果。
输入:输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格分开。
第6行包含两个整数m、n(1 <= m,n< = 5),以一个空格分开。
输出:输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开。
【样例输入】
1 2 2 1 2
5 6 7 8 3
9 3 0 5 3
7 2 1 4 6
3 0 8 2 4
1 5
【样例输入】
3 0 8 2 4
5 6 7 8 3
9 3 0 5 3
7 2 1 4 6
1 2 2 1 2
#include<iostream>
using namespace std;
int main(){
//定义要交换的行数
int r1,r2;
//定义一个五行五列的二维数组
int a[][]={};
for(int i=;i<;i++){
for(int j=;j<;j++){
cin>>a[i][j];
}
}
//输入你要交换的行和列
cin>>r1>>r2;
for(int i=;i<;i++){
swap(a[r1-][i],a[r2-][i]);
}
for(int i=;i<;i++){
for(int j=;j<;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return ;
}
1. 打印杨辉三角
【问题描述】
打印杨辉三角形的前10行,杨辉三角形如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
【样例输出】
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
#include<iostream>
using namespace std;
int main()
{
//定义一个十行十列的数组
int a[][];
//先遍历行
for(int i=;i<;i++){
//先把空格打出来
for(int h=;h<-i;h++){
cout<<" ";
} for(int j=;j<=i;j++){
if(j==||j==i)
{
a[i][j]=;
}
else {
a[i][j]=a[i-][j-]+a[i-][j];
}
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return ;
}
2. 扫雷游戏地雷数计算
【问题描述】
扫雷游戏是一款十分经典的单机小游戏。它的精髓在于,通过已翻开格子所提示的周围格地雷数,来判断未翻开格子里是否是地雷。现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格的周围格地雷数。
注:每个格子周围格有八个:上、下、左、右、左上、右上、左下、右下。
输入:第一行包含两个整数n和m,分别表示雷区的行数和列数。1 <= n <= 100, 1 <= m <= 100。接下来n行,每行m个字符,‘*’表示相应格子中是地雷,‘?’表示相应格子中无地雷。字符之间无任何分隔符。
输出:n行,每行m个字符,描述整个雷区。若相应格中是地雷,则用‘*’表示,否则用相应的周围格地雷数表示。字符之间无任何分隔符。
【样例输入】
3 3
*??
???
?*?
【样例输出】
*10
221
1*1
#include <iostream>
using namespace std;
int main(){
int n,m,cnt=;
char a[][];
cin>>n>>m;
for(int i=;i<n;i++){
for(int j=;j<m;j++){
cin>>a[i][j];
}
}
for(int i=;i<n;i++){
for(int j=;j<m;j++){
if(a[i][j]!='*'){
if(a[i-][j-]=='*') cnt++;
if(a[i-][j]=='*') cnt++;
if(a[i-][j+]=='*') cnt++;
if(a[i][j-]=='*') cnt++;
if(a[i][j+]=='*') cnt++;
if(a[i+][j-]=='*') cnt++;
if(a[i+][j]=='*') cnt++;
if(a[i+][j+]=='*') cnt++;
cout<<cnt;
cnt=;
}
else{
cout<<"*";
}
}
cout<<" "<<endl;
}
return ;
}
3. 二维数组右上左下遍历
【问题描述】
给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组。
输入:输入的第一行上有两个整数,依次为row和col。余下有row行,每行包含col个整数,构成一个二维整数数组。(注:输入的row和col保证0 < row < 100, 0 < col < 100)
输出:按遍历顺序输出每个整数。每个整数占一行。
【样例输入】
3 4
1 2 4 7
3 5 8 10
6 9 11 12
【样例输出】
1 2 3 4 5 6 7 8 9 10 11 12
#include <iostream>
using namespace std; int main(){
int r,c,max;
cin>>r>>c;
max=r+c-;
int a[][];
for(int i=;i<r;i++){
for(int j=;j<c;j++){
cin>>a[i][j];
}
}
for(int k=max;k;k--){ //3 4
for(int j=max-k,i=;i<r;j--,i++){
if(j>=&&j<c)
cout<<a[i][j]<<" ";
}
}
return ;
}
noip第9课作业的更多相关文章
- 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个比较小的单位,其 ...
随机推荐
- visual c++ 中的stdafx.h头文件的作用
stdafx.h VC工程里面经常见到stdafx.h这个头文件,以前也没有特别注意,但是这个文件用不好经常会出错,所以就GOOGLE了一下,总算是弄清楚了... stdafx的英文全称为:Stand ...
- Spring ThreadPoolTaskExecutor
1. ThreadPoolTaskExecutor配置 1 <!-- spring thread pool executor --> 2 <bean id="taskExe ...
- Python str() 函数
Python str() 函数 Python 内置函数 描述 str() 函数将对象转化为适于人阅读的形式. 语法 以下是 str() 方法的语法: class str(object='') 参数 ...
- Binary Tree Traversal 二叉树的前中后序遍历
[抄题]:二叉树前序遍历 [思维问题]: 不会递归.三要素:下定义.拆分问题(eg root-root.left).终止条件 [一句话思路]: 节点非空时往左移,否则新取一个点 再往右移. [输入量] ...
- 排序矩阵中的从小到大第k个数 · Kth Smallest Number In Sorted Matrix
[抄题]: 在一个排序矩阵中找从小到大的第 k 个整数. 排序矩阵的定义为:每一行递增,每一列也递增. [思维问题]: 不知道应该怎么加,因为不是一维单调的. [一句话思路]: 周围两个数给x或y挪一 ...
- Linux SSH基于密钥交换的自动登陆原理简介及配置说明
一.原理简介 SSH证书认证登录的基础是一对唯一匹配密钥: 私钥(private key)和公钥(public key).公钥用于对数据进行加密,而且只能用于加密.而私钥只能对使用所匹配的公钥,所加密 ...
- jquery源码学习-构造函数(2)
最近几天一直在研究jquery源码,由于水平太低看得昏头转向.本来理解的也不是很深刻,下面就用自己的想法来说下jquery是如何定义构造函数初始化的.如果有什么不对的地方,希望个位高手指出. 一般写 ...
- linux配置网络
1.配置网络信息 linux系统的第一块网卡信息 /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE 设备名 ONBOOT 系统启动后是否自动启动网卡设备 ...
- RPM包制作方法
一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...
- select查询
4.2 查询功能 SQL的核心是查询.SQL的查询命令也称作SELECT命令,它的基本形式由SELECT-FROM-WHERE查询块组成,多个查询块可以嵌套执行. 以下表为以后的例子中使用表: 档案 ...