C++(阶段性练习)
2026/6/8 12:28:58 网站建设 项目流程

学习目标

  1. 模拟法的练习
  2. 枚举法的练习

计算机发展过程(三)

第四代计算机(1971年-现在)采用大规模、超大规模集成电路,内存为半导体存储器,外存为磁盘或光盘。出现了数据库管理系统、网络管理系统和面向对象语言等先进软件技术,为计算机的应用提供了更广阔的平台和可能性。个人电脑开始普及,网络技术得到了迅速发展,计算机成为日常生活中不可或缺的一部分。

什么是模拟法

顾名思义,就是利用计算机模拟问题的求解过程,从而得到问题的解模拟法是解决问题的一种方法或模式,针对具体问题要设计具体的程序
模拟是一种思想!
具体问题具体分析!

模拟法解题的步骤

  1. 认真仔细的读题
  2. 提取关键要素
  3. 按需求编写程序 全面测试程序的正确性
  4. 多练习、多整理细节、熟能生巧

什么是枚举法

枚举,也叫穷举。即按照一定顺序,不重复、不遗漏遍历所有可能的解,对每一个可能的解按题意进行验证,从而得到正确的解。虽然需要消耗大量的时间,但是简单,可以取得正确结果。也被称为暴力算法。
常用于解决“是否存在”或“有多少种可能”等问题。
循环是最简单的枚举方案

枚举法解题的步骤

1 确定枚举量、枚举范围
2 用循环实现枚举
3 在循环体中进行判断和筛选
4 保证正确性的前提下进行适当优化

植树方案

公园准备在小山上种桃树、梨树、苹果树,为了美观,总共准备种n棵树(n>=6且n一定是
6的倍数),要求三种树都得有,且每种树的数量都得是偶数,桃树的数量不能比梨树的数量多,梨树的数量不能比苹果树的数量多。请问有这三种树的数量分别有哪些可能的组合方法,从少到多分别数出桃树、梨树、苹果数可能的数量组合,每行1个方案。
【输入】一个整数n(n>=6且是6的倍数)
【输出】若干行的可能的组合方案,每行3个数,分别代表桃树、梨树、苹果树的可能的方案。
【输入样例】18
【输出样例】
2 2 14
2 4 12
2 6 10
2 8 8
4 4 10
4 6 8
6 6 6

枚举思路:for(枚举桃树×){for(枚举梨树y){计算苹果树数量zif(苹果树数量符合题目要求)输出}}

#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,x,y,z;cin>>n;for(x=2;x<n;x+=2)//枚举桃树for(y=x;y<n;y+=2)//枚举梨树{z=n-x-y;//根据总数n,算苹果树的 数量if(z%2==0&&z>=y)cout<<x<<" "<<y<<" "<<z<<endl;}return0;}

神奇的幻方

幻方是一种很神奇的N*N矩阵:它由数字1,2,3, …… ,*N构成,且每行、每列及两条对角线上的数字之和都相同。比如洛书上的数字排列就是一个3阶幻方。由1~9九个连续的自然数构
成,且行、列、对角线之和都是15。

当N为奇数时,我们可以通过以下方法构建一个幻方:
首先将1写在第一行的中间。之后,按如下方式从小到大依次填写数字

K(K=2,3, … ,N*N):

  1. 若(K-1)在第一行但不在最后一列,则将K填在最后一行,(K-1)所在列的右一列;
  2. 若(K-1)在最后一列但不在第一行,则将K填在第一列,(K-1)所在行的上一行;
  3. 若(K-1)在第一行最后一列,则将K填在(K-1)的正下方;
  4. 若(K-1)既不在第一行,也不在最后一列,如果(K-1)的右上方还未填数,则将K填在(K-1)的右上方,否则将K填在(K-1)的正下方。

现给定奇数N,请按上述方法构造NN的幻方。
【输入】一个奇数N,即幻方的大小,(0<N <= 40)。
【输出】共N行,每行N个整数,即按上述方法构造出的N
N的幻方,
相邻两个整数之间用单空格隔开。
【输入样例1】3
【输出样例1】
816
357
492



#include<bits/stdc++.h>usingnamespacestd;intmain(){inta[41][41]={0},n;intx,y;//用两个坐标进行模拟cin>>n;x=1;y=n/2+1;//指定第一个数的坐标(第一行中间)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询