当前位置: 首页 > news >正文

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(六)

实战训练1—输出九九乘法表

问题描述:

在学校里学过九九乘法表,编程实现打印九九乘法表。

输入格式:

无输入

输出格式:


1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

问题分析:

仔细观察乘法表,可以发现由行列构成,每列的个数正好等于所在的行数,类似于之前介绍过的字符图形,使用for循环嵌套可以解决此问题。外循环变量i来控制行数,起始值为1,终值为9,更新表达式为自增表达式,内循环变量j来控制列数,起始值为1,由于第1行有1个等式,第2行有2个等式,……,内层循环变量j的终值为行数i,更新表达式也为自增表达式,由外循环变量i和内循环变量j相乘的等式构成了内循环的循环体,内循环加输出换行共同构成外循环体。具体程序代码如下:


#include<bits/stdc++.h>
using namespace std;
int main(){for(int i=1;i<=9;i++){//定义外层循环,循环变量i来控制行数,从1到9 for(int j=1;j<=i;j++){//定义内层循环,循环变量j来控制列数,从1到i cout<<i<<'*'<<j<<'='<<i*j<<' ';//输出i和j相乘的等式 }cout<<endl;//输出换行 } return 0;
}

如果想让九九乘法表里面的等式对齐,如下面运行结果:


1*1= 1
2*1= 2 2*2= 4
3*1= 3 3*2= 6 3*3= 9
4*1= 4 4*2= 8 4*3=12 4*4=16
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25
6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

可以采用格式化输出来实现,让i*j的值占两列,并且右对齐,具体程序代码如下:


#include<bits/stdc++.h>
using namespace std;
int main(){for(int i=1;i<=9;i++){//定义外层循环,循环变量i来控制行数,从1到9 for(int j=1;j<=i;j++){//定义内层循环,循环变量j来控制列数,从1到i printf("%d*%d=%2d ",i,j,i*j);//格式化输出i,j以及i和j相乘的结果 }printf("\n");//输出换行 } return 0;
}

实战训练2—换零钱

某人想将面值为100元的人民币兑换成若干张5元、2 元和1元面值的纸币,但要求零钱总数为50张,并且每种面值的纸币至少1张,请输出每一种可能的换法。

输入格式:

输出格式:

输出若干行,每行包含一种换法,分别表示5元的张数,2元的张数和1元的张数,中间用空格隔开。

输入输出样例:

输入样例

输出样例

1 46 3

2 42 6

3 38 9

4 34 12

5 30 15

6 26 18

7 22 21

8 18 24

9 14 27

10 10 30

11 6 33

12 2 36

问题分析:

根据题意,将100元的人民币兑换成5元、2元和1元的零钱,每种零钱至少1张,所以5元的取值可以从1到20(100元全部换5元的话,最多20张),2元的取值是1到50张(100元全部换2元,最多可以换50张),剩下的全部为1元的张数,要求列举出所有的方案数,所以可以使用for嵌套循环来实现,用外层循环变量i来控制5元的张数,内层循环j来控制2元的张数,那么1元的张数就为(50-i-j),外层循环变量i,起始值为1,终值为20,循环变量更新表达式为自增运算,内层循环变量j,起始值为1,终值为50,循环变量更新表达式也为自增运算,内层循环的循环体,首先计算1元的张数k为k=50-i-j,然后计算所有零钱的面值之和是否为100,5元的张数乘以5加上2元的张数乘以2,再加上1的张数乘以1,即5*i+2*j+k==100,同时这三种零钱的张数不能为0,由于外循环变量和内循环变量的取值都不为0,因此需要保证k不能为0,如果两个条件表达式与的结果为真,那么输出该方案可行,输出这三种零钱的张数,如果两个条件表达式与的结果为假,那么该方案不可行,内循环是外循环的循环体。具体程序代码如下:


#include<bits/stdc++.h>
using namespace std;
int main(){for(int i=1;i<=20;i++){//定义外循环,循环变量i为5元的张数,从1到20 for(int j=1;j<=50;j++){//定义内循环,循环变量j为2元的张数,从1到50 int k = 50-i-j;//定义1元的张数 if((i*5 +j*2+k==100) && (k!=0))//判断零钱面值总和是否为100,并且所有的零钱张数不能为0 cout<<i<<' '<<j<<' '<<k<<' '<<endl;}}return 0;
}

相关文章:

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(六)

实战训练1—输出九九乘法表 问题描述: 在学校里学过九九乘法表&#xff0c;编程实现打印九九乘法表。 输入格式&#xff1a; 无输入 输出格式&#xff1a; 1*11 2*12 2*24 3*13 3*26 3*39 4*14 4*28 4*312 4*416 5*15 5*210 5*315 5*420 5*525 6*16 6*212 6*318 6*424 6*5…...

封装echarts成vue component

封装echarts成vue component EChartsLineComponent 文章目录 封装echarts成vue component EChartsLineComponent封装说明重写重点EChartsLineComponent的源码 使用说明调用EChartsLineComponent示例源码 封装说明 为了减少一些公共代码和方便使用echarts的line图形&#xff0c…...

uniapp Stripe 支付

引入 Stripe npm install stripe/stripe-js import { loadStripe } from stripe/stripe-js; Stripe 提供两种不同类型组件 Payment Element 和 Card Element&#xff1a;如果你使用的是 Payment Element&#xff0c;它是一个更高级别的组件&#xff0c;能够自动处理多种支…...

Windows onnxruntime编译openvino

理论上来说&#xff0c;可以直接访问 ONNXRuntime Releases 下载 dll 文件&#xff0c;然后从官方文档中下载缺少的头文件以直接调用&#xff0c;但我没有尝试过。 1. 下载 OpenVINO 包 从官网下载 OpenVINO 的安装包并放置在 C:\Program Files (x86) 路径下&#xff0c;例如…...

vue3+TS+vite中Echarts的安装与使用

概述 技术栈&#xff1a;Vue3TsViteEcharts 简述&#xff1a;图文详解&#xff0c;教你如何在Vue项目中引入Echarts&#xff0c;封装Echarts组件&#xff0c;并实现常用Echats图列 文章目录 一&#xff0c;效果图 二&#xff0c;引入Echarts 2.1安装Echarts 2.2main.ts中引…...

期末算法分析程序填空题

目录 5-1 最小生成树&#xff08;普里姆算法&#xff09; 5-2 快速排序&#xff08;分治法&#xff09; 输入样例&#xff1a; 输出样例&#xff1a; 5-3 归并排序(递归法) 输入样例&#xff1a; 输出样例&#xff1a; 5-4 求解编辑距离问题&#xff08;动态规划法&#xff09;…...

搭建android开发环境 android studio

1、环境介绍 在进行安卓开发时&#xff0c;需要掌握java&#xff0c;需要安卓SDK&#xff0c;需要一款编辑器&#xff0c;还需要软件的测试环境&#xff08;真机或虚拟机&#xff09;。 早起开发安卓app&#xff0c;使用的是eclipse加安卓SDK&#xff0c;需要自行搭建。 目前开…...

R语言6种将字符转成数字的方法,写在新年来临之际

咱们临床研究中&#xff0c;拿到数据后首先要对数据进行清洗&#xff0c;把数据变成咱们想要的格式&#xff0c;才能进行下一步分析&#xff0c;其中数据中的字符转成数字是个重要的内容&#xff0c;因为字符中常含有特殊符号&#xff0c;不利于分析&#xff0c;转成数字后才能…...

RocketMQ学习笔记(持续更新中......)

目录 1. 单机搭建 2. 测试RocketMQ 3. 集群搭建 4. 集群启动 5. RocketMQ-DashBoard搭建 6. 不同类型消息发送 1.同步消息 2. 异步消息发送 3. 单向发送消息 7. 消费消息 1. 单机搭建 1. 先从rocketmq官网下载二进制包&#xff0c;ftp上传至linux服务器&#xff0c…...

强化学习的基础概念

这节课会介绍一些基本的概念&#xff0c;并结合例子讲解。 在马尔科夫决策框架下介绍这些概念 本博客是基于西湖大学强化学习课程的视屏进行笔记的&#xff0c;这是链接&#xff1a; 课程链接 目录 强化学习的基本概念 state和state space Action和Action Space State transiti…...

excel怎么删除右边无限列(亲测有效)

excel怎么删除右边无限列&#xff08;亲测有效&#xff09; 网上很多只用第1步的&#xff0c;删除了根本没用&#xff0c;还是存在&#xff0c;但是隐藏后取消隐藏却是可以的。 找到右边要删除的列的第一个空白列&#xff0c;选中整个列按“ctrlshift>(向右的小箭头)”&am…...

STM32-笔记23-超声波传感器HC-SR04

一、简介 HC-SR04 工作参数&#xff1a; • 探测距离&#xff1a;2~600cm • 探测精度&#xff1a;0.1cm1% • 感应角度&#xff1a;<15 • 输出方式&#xff1a;GPIO • 工作电压&#xff1a;DC 3~5.5V • 工作电流&#xff1a;5.3mA • 工作温度&#xff1a;-40~85℃ 怎么…...

Linux | Ubuntu零基础安装学习cURL文件传输工具

目录 介绍 检查安装包 下载安装 手册 介绍 ‌cURL是一个利用URL语法在命令行下工作的文件传输工具&#xff0c;首次发行于1997年‌‌12。cURL支持多种协议&#xff0c;包括FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3…...

什么是 GPT?Transformer 工作原理的动画展示

大家读完觉得有意义记得关注和点赞&#xff01;&#xff01;&#xff01; 目录 1 图解 “Generative Pre-trained Transformer”&#xff08;GPT&#xff09; 1.1 Generative&#xff1a;生成式 1.1.1 可视化 1.1.2 生成式 vs. 判别式&#xff08;译注&#xff09; 1.2 Pr…...

SpringCloudAlibaba实战入门之路由网关Gateway过滤器(十三)

承接上篇,我们知道除了断言,还有一个重要的功能是过滤器,本节课我们就讲一下常见的网关过滤器及其一般使用。 一、Filter介绍 类似SpringMVC里面的的拦截器Interceptor,Servlet的过滤器。“pre”和“post”分别会在请求被执行前调用和被执行后调用,用来修改请求和响应信…...

电路仿真软件PSIM简介

在从事开关电源相关产品开发的工程师或者正在学习开关电源的学习者&#xff0c;常常会用到各种仿真软件进行电路的仿真&#xff0c;不仅可以快速验证电路参数&#xff0c;还能清楚知道各器件的工作状态。 现在的电路仿真软件很多&#xff0c;例如matlab、Multisim、Simplis&…...

C语言:调试的概念和调试器的选择

所谓调试&#xff08;Dubug&#xff09;&#xff0c;就是跟踪程序的运行过程&#xff0c;从而发现程序的逻辑错误&#xff08;思路错误&#xff09;&#xff0c;或者隐藏的缺陷&#xff08;Bug&#xff09;。 在调试的过程中&#xff0c;我们可以监控程序的每一个细节&#xff…...

25. C++继承 1 (继承的概念与基础使用, 继承的复制兼容规则,继承的作用域)

⭐上篇模板文章&#xff1a;24. C模板 2 (非类型模板参数&#xff0c;模板的特化与模板的分离编译)-CSDN博客 ⭐本篇代码&#xff1a;c学习 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) ⭐标⭐是比较重要的部分 目录 一. 继承的基础使用 1.1 继承的格式 1.2 …...

git 退出编辑模式

在使用 Git 时&#xff0c;有时需要进入编辑器来输入提交信息或进行其他编辑操作。不同的系统和配置可能会导致使用不同的编辑器。以下是几种常见 Git 编辑器的退出方法&#xff1a; ‌Vim 编辑器‌&#xff1a; ‌保存并退出‌&#xff1a; 按下 Esc 键退出编辑模式。输入 :w…...

内容营销与传统营销方式有哪些差别?

在互联网高度发达的当下&#xff0c;碎片化的信息接收方式&#xff0c;让用户对于营销信息拥有较高的敏感度。这一现状&#xff0c;也使得众多传统营销方式正在逐渐失效。想要稳定推广效率&#xff0c;内容营销是当下不少品牌的共同选择。接下来&#xff0c;就让我们来了解下内…...

终极Xbox手柄性能检测指南:5个技巧让你的游戏控制器发挥最大潜力

终极Xbox手柄性能检测指南&#xff1a;5个技巧让你的游戏控制器发挥最大潜力 【免费下载链接】XInputTest Xbox 360 Controller (XInput) Polling Rate Checker 项目地址: https://gitcode.com/gh_mirrors/xin/XInputTest 你是否曾经在激烈游戏对战中感觉手柄响应不够灵…...

SQL-lab通关教程

Less-1单引号型完整注入流程打开靶场第一关你会看到如下图所示界面&#xff0c;由为方便后续靶场的payload输入查看&#xff0c;我这里了将直接利用hackbar进行sql注入测试。第1步&#xff1a;确认闭合方式payload&#xff1a;http://127.0.0.1:8080/Less-1/?id1分析&#xff…...

EEGLab新手避坑:手把手教你搞定EEG数据的Marker、分段与Epoch提取(附完整代码)

EEGLab新手避坑指南&#xff1a;Marker设置、数据分段与Epoch提取全流程解析 在脑电信号处理领域&#xff0c;EEGLab作为MATLAB环境下最常用的开源工具包&#xff0c;其强大的功能和灵活的扩展性深受研究者青睐。但对于刚接触EEGLab的研究生和初级用户来说&#xff0c;从原始EE…...

对比直接使用官方API,通过Taotoken聚合调用在容灾方面的体验差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用官方API&#xff0c;通过Taotoken聚合调用在容灾方面的体验差异 在开发依赖大模型能力的应用时&#xff0c;服务的稳定…...

5分钟掌握Cherry MX键帽3D建模:打造你的专属机械键盘

5分钟掌握Cherry MX键帽3D建模&#xff1a;打造你的专属机械键盘 【免费下载链接】cherry-mx-keycaps 3D models of Chery MX keycaps 项目地址: https://gitcode.com/gh_mirrors/ch/cherry-mx-keycaps 你是否曾想过亲手设计一套完全属于自己的机械键盘键帽&#xff1f;…...

基于STM32MP25x构建工业级嵌入式Linux平台:Debian、XFCE、VNC与TSN集成实践

1. 项目概述&#xff1a;一个面向工业边缘的“全能”嵌入式Linux平台最近&#xff0c;我们团队基于STM32MP25x系列核心板&#xff0c;成功构建并发布了一套完整的Debian系统镜像。这个项目的目标非常明确&#xff1a;打造一个开箱即用、功能全面且高度适配工业边缘计算场景的嵌…...

反向Shell隐藏技术深度解析:从进程伪装到网络隐匿的攻防实践

1. 项目概述&#xff1a;从“隐藏”到“隐匿”的攻防博弈在网络安全领域&#xff0c;反向Shell是一种经典且常见的远程控制手段。简单来说&#xff0c;它让被控端主动连接控制端&#xff0c;从而绕过防火墙等入站限制。然而&#xff0c;一个明晃晃的、持续存在的网络连接或进程…...

从老式万用表到精密测量:双积分ADC如何用‘慢’换来‘准’?选型避坑指南

从老式万用表到精密测量&#xff1a;双积分ADC如何用‘慢’换来‘准’&#xff1f;选型避坑指南 在仪器仪表和传感器信号调理领域&#xff0c;精度与速度的权衡一直是硬件工程师面临的核心挑战。当我们处理温度、压力或称重传感器等低频高精度信号时&#xff0c;传统的SAR和Σ…...

STM32串口高效通信秘籍:巧用DMA+空闲中断实现不定长数据收发(基于CubeIDE)

STM32串口高效通信秘籍&#xff1a;巧用DMA空闲中断实现不定长数据收发&#xff08;基于CubeIDE&#xff09; 在物联网设备和嵌入式系统开发中&#xff0c;串口通信是最基础也最关键的通信方式之一。无论是传感器数据采集、设备间通信还是与上位机交互&#xff0c;稳定高效的串…...

【实用程序】基于 Java 的简易HTTP 反向代理

本站内的程序及源代码下载地址。 第一章 概述 本项目是一个基于 Java 的简易 HTTP 反向代理实现。反向代理(Reverse Proxy)的核心职责是代表客户端向目标服务器发起请求,并将目标服务器的响应透明地返回给客户端。客户端感知不到后端真实服务的存在,所有交互都通过代理层…...