片头
嗨~小伙伴们,大家好!今天我们来学习C++蓝桥杯基础篇(四),继续练习相关习题。准备好了吗?咱们开始咯~
题目1 连续整数相加
思路分析:
这道题,我们可以把从键盘中读取n写在while循环条件里面,while(cin >> n),题目中明确指出:如果读入的n为0或者负数,则继续读取数字直至读入n值为正整数为止。因此,只要 n<=0,我们就不停的读取n,不作任何处理。
while循环条件应为:while(cin >> n,n<=0); 只要 n>0,立马跳出循环,作后续判断。
代码如下:
//连续整数相加
//读入2个整数值a和n,计算从a开始的n个连续整数的和
//注意,如果读入的n为0或为负数,则继续读取数字直至读入n值为正整数为止
//输入共一行,包含整数a和若干个整数n
//输出一个整数,表示从a开始的n个连续整数的和
int main() {
int a;
cin >> a;
int n;
while (cin >> n , n <= 0); //此处执行语句为空语句
int sum = a;
for (int i = 1; i < n; i++) {
sum += a + i;
}
cout << "从 "<<a<<" 开始的 "<< n << " 个连续整数的和为: " << sum << endl;
return 0;
}
题目2 约数
代码如下:
//约数
//输入1个整数n,按照从小到大的顺序输出它的全部约数、
//输入一个整数n
//输出全部约数,每个约数占1行
int main() {
int n;
cin >> n;
for (int i = 1; i < n; i++) {
if (n % i == 0) //如果 n % i == 0,说明n可以被i整除
cout << i << endl;
}
return 0;
}
题目3 PUM
思路分析:
题目要求说,构造一个n行m列的矩阵,我们可以使用循环嵌套:
①外层的for循环控制行数,里面的for循环控制列数。
②定义变量k,表示矩阵中的数字。
③规定将每行的最后一个数字变为PUM,则里面的for循环的取值范围 0~m-2,从第0列~第m-2列,数字k都可在矩阵中出现。
④第m-1列,打印"PUM",打印完毕后,k自动加1。每打印完一行,执行换行操作。
代码如下:
//PUM
//输入2个整数n和m,构造一个n行m列的数字矩阵
//矩阵中的数字从第一行到最后一行
//按从左到右的顺序依次为 1,2,3,4,...,n*m
//矩阵构造完成后,将每行的最后一个数字变为PUM
//输出最终矩阵
int main3() {
int n, m;
cin >> n >> m;
for (int i = 0, k = 1; i < n; i++) //打印n行,i的取值范围 0~n-1
{
for (int j = 0; j < m-1; j++, k++) //打印m-1行,j的取值范围 0~m-2
{
cout << k << " ";
}
cout << "PUM" << endl; //最后一列打印"PUM"
k++; //打印完毕后,k自动加1
}
return 0;
}
题目4 余数
代码如下:
//余数
//输入一个整数n
//请按顺序输出1~10000之间(不包括1~10000)的所有除以n余2的数字
//输入1个整数n
//输出所有满足条件的数字,从小到大每行输出1个
int main() {
i