1。编程求出小于n的所有素数(素数又叫质数)。 ⒉有一对兔子,从第三个月起每个月生一对兔子,小兔子从第三个月起每个月又生一对兔子,假设所有兔子都不死,编程序计算每个月的兔子是多少对(求20个月)。 3.从键盘输入任意多个整数(-999为结束标志),计算其中正数之和。 在C++编程中,这些习题涵盖了基础的算法和数据处理。下面将分别解析每个问题的知识点,并提供相应的代码分析。 1. **编程求出小于n的所有素数**: 素数是只能被1和它本身整除的自然数。在C++中,我们可以通过遍历2到n-1之间的所有数字来判断是否为素数。这里用了一个嵌套循环,外层循环从2开始到n-1,内层循环检查当前数字是否能被小于它的任何数字整除。如果可以,则该数不是素数,跳出循环;否则,输出该数。这种方法称为“筛法”,是最基本的素数查找方法。 ```cpp for (i=2; i<n; i++) { bool isPrime = true; for (j=2; j<i; j++) { if (i % j == 0) { isPrime = false; break; } } if (isPrime) cout << i << " "; } ``` 2. **兔子繁殖问题**(斐波那契数列): 这个问题涉及到斐波那契数列,每一项等于前两项之和。兔子的数量按月递增,可以使用动态规划来解决。初始化第一月和第二月的兔子对数为1,然后逐月计算总数。每个月的兔子对数是上两个月的和。 ```cpp int f1 = 1, f2 = 1; for (int i = 3; i <= 20; i++) { int f3 = f1 + f2; cout << i << "月兔子对数为:" << f3 << endl; f1 = f2; f2 = f3; } ``` 3. **计算正整数之和**: 这是一个基本的输入处理问题,通过循环从键盘接收整数,直到遇到结束标志-999。在循环中,首先检查输入的数值是否为负数,如果是则跳过本次循环,否则将其累加到总和中。 ```cpp int x, sum = 0; while (true) { cin >> x; if (x == -999) break; if (x < 0) continue; sum += x; } cout << "s=" << sum << endl; ``` 4. **打印数字金字塔**: 这个问题涉及到二维数组的打印。外层循环控制行数,内层循环控制每行中的空格和数字数量。打印数字时,先打印左半部分,再打印右半部分。需要注意的是,打印右半部分时,数字是从大到小排列的。 ```cpp for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9 - i; j++) cout << " "; for (int k = 1; k <= i; k++) cout << k; for (int m = i - 1; m >= 1; m--) cout << m; cout << endl; } ``` 通过这些习题,我们可以复习和巩固C++的基本语法、循环结构、条件判断、函数使用以及基础算法,如素数判断、斐波那契数列、输入处理和二维数组的打印等。这些知识点是学习C++编程的基础,对于进一步深入学习和理解高级概念至关重要。
- wacyyqq2013-11-03很不错,是我想要的
- 粉丝: 1
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助