题目

从标准输入读入一个正整数 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