5. 爱因斯坦阶梯

题目编号:Exp02-Basic10,GJBook3-04-15

题目名称:爱因斯坦阶梯

问题描述:设有阶梯,不知其数,但知:每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨7阶,正好到楼顶。编程序求最少共有多少阶。

输入:无

输出:台阶数目

样例:无。详见输入输出说明。

#include <iostream>using namespace std;int main()
{int a;for (a = 7;;a += 14){if ((a % 3 == 2) && (a % 5 == 4)){cout << a;break;}}return 0;}

将数学的思想与算法结合将会简化运算

由“每步跨7阶,正好到楼顶”和“每步跨2阶,最后剩1阶”得知,a不仅为7的倍数,而且a一定为奇数,所以我们没必要在for循环中加上(a%2==1)(a为奇数)的条件;

随后应该注意的是,题目要求“编程序求最少共有多少阶”,基于此,我们要在输出第一个a后退出for循环。

6. 嵌套函数

题目编号:Exp02-Basic05

题目名称:嵌套函数

题目描述:编写程序,当x=1.0、2.0、…、20.0时,计算如下函数到5层嵌套。F(x)=1+1/(1+1/(1+1/(1+1/(1+1/x))))

输入:一个浮点数表示x的值,输入保证x不为零。

输出:一个浮点数F(x)的值,保留小数点后3位。

样例:

1
1.625

看到有的同学直接把这个嵌套函数复制进代码然后打印输出,个人不是很推荐这种做法(没有对循环结构进行强化,而且治标不治本,如果输出y个嵌套呢?),所以我们还是来写for循环吧

#include <iostream>
#include <iomanip>
using namespace std;int main()
{double x = 1.0, y = 1.0;cin >> x;if (x != 0){for (int i = 0;i < 5;i++){y = 1 + 1.0 / x;x = y;}cout << fixed << setprecision(3) << y;}return 0;}

7. 括号统计

题目编号:Exp02-Basic02

题目名称:括号统计

题目描述:编程序,判断给定以字符‘@’结束的字符序列中‘(’与‘)’、‘[’与‘]’、‘{’与‘}’的个数是否相等。

输入:输入一串以字符‘@’结束的字符序列,其间可能含有若干空白字符。

输出:个数不相等的括号(按花括号、方括号、圆括号的顺序);如果三种括号的个数都相等,输出NULL。

样例1:

输入:{a+b*c+(d/e-f]}}@
输出:{}[]()

样例2:

输入:{a  +  b*c+(d/e-f]}@
输出:[]()
#include <iostream>using namespace std;int main()
{char ch=0;int a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0;//计数器while(ch!='@'){cin >> ch;if (ch == '(') a1++;if (ch == ')') a2++;if (ch == '[') b1++;if (ch == ']') b2++;if (ch == '{') c1++;if (ch == '}') c2++;} if (a1 != a2) cout << "()";if (b1 != b2) cout << "[]";if (c1 != c2) cout << "{}";if((a1==a2)&&(b1==b2)&&(c1==c2)) cout << "NULL";return 0;}

看到上面那段代码,老观众肯定跳起来说:“什么?难道你不再爱for循环了吗?”,哈哈哈,其实不然

while循环对于不知道循环次数的情况时非常好用,这也是for循环的一个小小的缺点

8. (程序题)

题目编号:Exp02-Enhance04,GJBook3-04-14

题目名称:字母矩阵

题目描述:用循环语句控制打印如下图形,其中输出的每个字母占用2个字符宽度(空格在前,字母在后)。

输入:无

输出:如上图字母矩阵

说明:请同学们根据字母、位置的规律实现该程序。打表爽一时,考试两行泪~

 闲话少叙,直接上代码

#include <iostream>using namespace std;int main()
{cout << " A B C D E F G H I" << endl;cout << " B C D E F G H I A" << endl;cout << " C D E F G H I A B" << endl;cout << " D E F G H I A B C" << endl;cout << " E F G H I A B C D" << endl;cout << " F G H I A B C D E" << endl;cout << " E F G H I A B C D" << endl;cout << " D E F G H I A B C" << endl;cout << " C D E F G H I A B" << endl;cout << " B C D E F G H I A" << endl;cout << " A B C D E F G H I" << endl;return 0;}

 搞错了,重来!不会真的有同学按照上面那种方式打表吧,不会吧不会吧

那我们还是用循环语句来写吧

#include <iostream>using namespace std;int main()
{char arr[18] = {'A','B','C','D','E','F','G','H','I','A','B','C','D','E','F','G','H','I' };for (int i = 0;i < 6;i++)//行数{//行的内容for (int j = i;j < 9 + i;j++){cout << " "<<arr[j];}cout << endl;}for (int i = 5;i >0;i--){for (int j = i-1;j <i+8;j++){cout << " "<<arr[j];}cout << endl;}return 0;}

数组的巧妙定义

可以看到,在定义数组时没有选择A到I,而是从A到I再从A到I,哈哈哈哈哈哈哈哈哈

这样做其实是为了避免再写一个循环左移的函数

for循环还是一样,外层定义行,内层定义行的内容

特别注意,输出每一行的内容时,要确保输出9个字符

吉林大学超星MOOC学习通高级语言程序设计 C++ 实验02 分支与循环程序设计(2021级)(2)相关推荐

  1. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验02 分支与循环程序设计(2021级)(1)

    由于本章节题目太多,我将分几次发布 实验02 分支与循环程序设计(2021级) 一. 程序题(共15题,100分) 1. (程序题) 题目编号 :Exp02-Enhance02,GJBook3-04- ...

  2. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验02 分支与循环程序设计(2021级)(4)

    13. 倍数 题目编号:Exp02-Basic07,GJBook3-03-07 题目名称:倍数 题目描述:任意一个整数n,如果n能同时被3.5.7整除,则n是3.5.7的倍数,如果n只能同时被其中的两 ...

  3. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验04 数组及其在程序设计中的应用(2021级)(1)

    1. 索引数组排序 题目编号:Exp04-Enhance04,GJBook3-06-21 题目名称:索引数组排序 题目描述:已知n(n≤100)个元素的整型数组 A 未排序,一个索引数组 B 保存 A ...

  4. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验05 指针及其在程序设计中的应用(2021级)

    目录 1.字符串长度 2. 合法标识符 3.分类统计字符 4. 字符串部分删除 5. 排序二维数组 1.字符串长度 题目编号:Exp05-Basic01,GJBook3-07-06 题目名称:字符串长 ...

  5. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验02 分支与循环程序设计(2021级)(3)

    9. 三位Armstrong数 题目编号 :Exp02-Basic08,GJBook3-04-12 题目名称:三位Armstrong数 题目描述:编写程序,打印所有3位的Armstrong数,Arms ...

  6. 吉林大学 超星慕课 高级语言程序设计 实验02 分支与循环程序设计(2022级)

    本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. Exp02-Basic01 #include<stdio.h> int main(void) {float a,b ...

  7. 吉林大学超星慕课平台——高级语言程序设计 实验02 分支与循环程序设计(2022级)

    一. 程序题(共15题,100分) 1. (程序题) 题目编号:Exp02-Basic01,GJBook3-03-03 题目名称:递增排序 题目描述:任意三个实数a.b.c,按照从小到大的顺序输出. ...

  8. 吉林大学超星MOOC高级语言程序设计 实验07(2021级)

    1. (程序题) [计2016级期末试题]构造一个表示教师的结构体(包含3个字段:姓名.性别.年龄),编写函数,读入n个教师的信息,存入一个结构体数组中(如下图所示).最后输出第n/2个教师的信息. ...

  9. 20155328 《Java程序设计》 实验二(Java面向对象程序设计) 实验报告

    20155328 <Java程序设计> 实验二(Java面向对象程序设计) 实验报告 单元测试 一.单元测试和TDD 编程时需理清思路,将编程需求等想好,再开始编.此部分可用伪代码实现. ...

最新文章

  1. Stream Processing: S4系统模型分析和关键源码读解
  2. BZOJ2132 圈地计划
  3. 关于32bit与4Gib的问题
  4. 【嵌入式】C语言高级编程-内联函数(10)
  5. shell文件管理jenkins构建过程---window环境下报错:找不到shell文件
  6. autoupdater 更新后重新运行_Windows 10 总是自动更新?这几个方法教你关闭它
  7. 手把手入门神经网络系列-2篇-有图有码(转)
  8. Win10怎么让英伟达独立显卡成为主显卡
  9. Scrum Meeting---Ten(2015-11-5)
  10. Java简历模板(三十个模板随意选)
  11. 关于Junit中Assert已经过时
  12. mysql id自增 SQL语句_sql语句id自增的问题
  13. jmeter安全证书_使用Jmeter进行https接口测试时,如何导入证书
  14. HDOJ 5142 NPY and FFT 水
  15. r 对一列计数_根据另一列对项目进行计数
  16. 其他设备android显示感叹号,设备管理器出现其它设备未知设备感叹号的解决方法!...
  17. 【信号与系统】指数信号与正弦信号
  18. miui系统备份恢复失败(一招解决,,无需技术也行)
  19. 华为鸿蒙麒麟玉兔_华为注册整本山海经?操作系统取名鸿蒙芯片取名麒麟
  20. NEW RDSP MODE I (模拟,循环节)

热门文章

  1. 计算机当前系统时间格式,类型:系统设置篡改-系统时间或日期不正确说明:当前系统时间与时区不符...
  2. elementui table 默认带滚动条 导致 表头不对齐问题
  3. 《Excel图表之美》
  4. python 如何输出中文_python3如何输出中文
  5. CAD2020或以上版本许可管理器不起作用或未正确安装 解决方法
  6. 火山PC-001-动态创建弹出菜单
  7. idea自定义导包个数不带*
  8. PartMaker 走心机车削 车铣编程视频教程 PartMaker资料
  9. 什么是 Python?Python 基础编程入门指南
  10. 语义分析的一些方法(三) 图像语义分析