题目
从标准输入读入一个正整数 n,使用 <code>for</code> 循环计算从 1 到 n 的整数累加和,并演示步长为 2 时的奇数累加和。
输入格式:一行输入一个正整数 n。
输出格式:分行输出 1 到 n 的全部累加和,以及其中所有奇数的累加和。
数据范围与约定:1 ≤ n ≤ 10^5。
思路与算法
1. for 循环语法结构
在 Octave 中,for 循环以 for var = vector ... end 组织。循环变量 var 会逐一绑定到右侧向量的每一列(或标量)。
2. 步长设定
默认单步为 1:n;指定步长为 1:2:n,循环次数自动按等差项递进。
3. 变量初始化
进入循环累加前,累加器变量必须先赋初值 s = 0,不可依赖未定义变量。
完整程序
% Octave / MATLAB 第51题:for 循环累加
[n, count] = scanf("%d", 1);
if count < 1 || n < 1
fprintf("错误:请输入大于等于 1 的正整数。\n");
return;
end
% 1. 全体整数累加 1:n
total_all = 0;
for k = 1:n
total_all = total_all + k;
end
% 2. 奇数累加 1:2:n
total_odd = 0;
for k = 1:2:n
total_odd = total_odd + k;
end
fprintf("n = %d\n", n);
fprintf("1 到 %d 累加和: %d\n", n, total_all);
fprintf("1 到 %d 奇数累加和: %d\n", n, total_odd);运行示例
示例 1:
输入:
10输出:
n = 10
1 到 10 累加和: 55
1 到 10 奇数累加和: 25示例 2:
输入:
100输出:
n = 100
1 到 100 累加和: 5050
1 到 100 奇数累加和: 2500