目录
前言
一、方阵
二、乘法口诀表
1.正向打印
2.反向打印
三、打印三角形
1.正三角
2.倒三角
四、杨辉三角
五、水仙花数
六、斐波那契数列
七、进制转换
1.十进制转二进制
2.二进制转十进制
总结
前言
在C++的海洋中,循环是一座宝藏岛,等待着勇敢的探索者去征服。正如一位著名程序员曾经说过:“没有循环,编程就像是一个没有尽头的迷宫,所以循环题目便是我们走向编程巅峰的重要阶梯。”想要成为C++的大师,你需要经历循环的洗礼,解决经典的练习题。本篇博客将向你展示一系列C++循环的经典练习题,帮助你在循环的世界中获得进一步的成长和掌握。让我们一同踏上这充满挑战与乐趣的征程吧!
一、方阵
代码如下(示例):
//行数和每行*的个数,由用户输入
#include <iostream>
#include <windows.h>
using namespace std;
int main(void) {
int row;
int col;
cout << "请输入行数:" << endl;
cin >> row;
cout << "请输入列数:" << endl;
cin >> col;
for (int i = 0; i < row;i++) {
for (int j = 0; j < col;j++) {
cout << "*" ;
}
cout << endl;
}
system("pause");
return 0;
}
二、乘法口诀表
1.正向打印
代码如下(示例):
#include <iostream>
#include <windows.h>
using namespace std;
int main(void) {
int s;
for (int i = 1; i <= 9; i++) { //i->外层循环次数,表示第几行
for (int j = 1; j <= i; j++) {
s = j * i;
cout << j << "*" << i << "=" << s<<"\t";
}
cout << endl;
}
system("pause");
return 0;
}
2.反向打印
代码如下(示例):
#include <iostream>
#include <windows.h>
#include <iomanip>
using namespace std;
int main(void) {
for (int i = 9; i >= 1; i--) { //从9到1逆序循环,控制乘法表的行数。
for (int j = i; j >= 1; j--) { //从i到1逆序循环,控制每行乘法表的输出。
cout << j << "×" << i << "=" << i * j << " " << "\t";
}
cout << endl;
for (int k = 9; k - i >= 0; k--) { //为了对齐每一行,输出相应数量的空格。
cout << "\t";
}
}
cout << endl;
system("pause");
return 0;
}
![82bd6c5aa1e34524afb18d5860ba74cb.png](https://img-blog.csdnimg.cn/82bd6c5aa1e34524afb18d5860ba74cb.png)
三、打印三角形
1.正三角
代码如下(示例):
#include <iostream>
#include <windows.h>
using namespace std;
int main(void) {
int row;
int col;
cout << "请输入行数:";
cin >> row;
cout << "请输入列数:";
cin >> col;
// 按指定行数和列数打印星号
for (int i = 1; i <= row; i++){ // 外层循环,控制行数。
for (int j = 0; j <= col - i; j++) { // 内层循环,控制每行打印的星号数量。
cout << "*";
}
cout << endl;
}
system("pause");
return 0;
}
2.倒三角
代码如下(示例):
#include <iostream>
#include <windows.h>
using namespace std;
int main(void) {
int row;
cout << "请输入行数:" << endl;
cin >> row;
for (int i = 0; i < row; i++) {
for (int j = 0; j < row - i; j++) {
cout << "*";
}
cout << endl;
}
system("pause");
return 0;
}
四、杨辉三角
代码如下(示例):
#include <iostream>
#include <windows.h>
using namespace std;
int main(void) {
int n;
cout << "请输入金字塔的层数:";
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i ; j++) {
cout << " "; // 打印空格,用于对齐金字塔的左侧
}
for (int j = 1; j <= 2 * i - 1 ; j++) {
cout << "*"; // 打印星号,构成金字塔的中间部分
}
cout << endl;
}
system("pause");
return 0;
}
五、水仙花数
水仙花数就是自恋的数字,它们就像是三位数中的明星,自恋地展示自己的立方和等于自己。
代码如下(示例):
/*输出所有水仙花数
水仙花数是指一个三位数,它的每位数字的立方和等于它本身。
说明:严格的说,只有3位的整数,才可能是水仙花数,即100-999
例如,153是一个水仙花数,1的立方+5的立方+3的立方=153。
*/
#include <iostream>
#include <windows.h>
using namespace std;
int main(void) {
int a, b, c; //例:123 =>a:3
// 个 十 百
for (int i = 100; i <= 999; i++) {
a = i % 10;
b = i / 10 % 10;
c = i / 100 ;
if (a * a * a + b * b * b + c * c * c == i) { //判断是否为水仙花数,是就输出
cout << i << endl;
}
}
system("pause");
return 0;
}
六、斐波那契数列
斐波那契数列:一个以0和1开始,后面的每个数都是前两个数之和的数列。
换句话说,每个数都是它前面两个数的和。
具体来说,斐波那契数列的前几个数是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
代码如下(示例):
/*输出指定项的斐波那契数列 (观察规律)
* 分析:
* v
* 序号:1,2, 3, 4, 5, 6, 7, 8 .... n
1, 1, 2, 3, 5, 8, 13, 21 .... x
a, b
a, b
a=b; b=value
为了防止溢出,把value、a、b都定义成long long 类型
*/
#include <iostream>
#include <windows.h>
using namespace std;
int main(void) {
int n = 0; // 斐波那契数列的个数
long long a=1, b=1; // 前两个斐波那契数
long long value;
cout << "请输入斐波那契数列的个数:";
cin >> n;
if (n <= 0) {
cout << "要求是大于0的正数." << endl;
system("pause");
return 1; //非正常结束返回值取非零值
}
if (n == 1) {
cout << "1" << endl;
system("pause");
return 0;
}
if (n == 2) {
cout << "1 1" << endl;
system("pause");
return 0;
}
cout << "1 1 ";
for (int i = 3; i <= n; i++) {
value = a + b; // 计算当前斐波那契数
a = b; // 更新前一个斐波那契数
b = value; // 更新当前斐波那契数
cout << value << " ";
}
cout << endl;
system("pause");
return 0;
}
七、进制转换
1.十进制转二进制
通常采用倒除法来进行转换
//将十进制数转换为二进制数 (倒除法)
#include <iostream>
#include <windows.h>
using namespace std;
int main(void) {
int i; // 存放二进制数的数组下标
int ret[32]; // 存放二进制数的数组,最多32位
int n;
cout << "请输入一个正整数:";
cin >> n;
if (n < 0) {
cout << "您输入的不是正整数!";
system("pause");
return 1;
}
i = 0;
while(n != 0) {
ret[i] = n % 2; // 将余数存入数组
n = n / 2; // 将商作为新的被除数
i++;
}
//输出结果
for (i--; i >= 0; i--) {
cout << ret[i]; // 逆序输出数组元素,即二进制数的各位
}
cout << endl;
system("pause");
return 0;
}
2.二进制转十进制
总结
这篇文章介绍了C++循环的经典练习题,包括打印方阵、打印(正、倒)三角形、杨辉三角、水仙花数、乘法口诀表(正向及反向打印)、斐波那契数列和十进制转二进制。
这些练习题有助于提升编程技能和理解循环概念,适合不同层次的程序员挑战和提高。
敬请期待更多有趣练习题的更新!