for 循环¶
for 循环¶
观察循环的执行过程
从 0 循环到 n-1
从 1 循环到 n
求 1 到 n 的和
sum += i;
求 n 的阶乘
t *= i;
自增自减¶
i++ 与 ++i 的区别
两者还有其他区别吗?
循环输出¶
输出等差数列
输出一个范围内的等差数列
// 已知 a1 = 1, an = 15, d = 2
// 输出 1 3 5 7 9 11 13 15
for (int i = a1; i <= an; i += d)
cout << i << ' ';
输出等差数列的第n项
// 已知 a1 = 1, a2 = 3, n = 5
// 分析可知 d = a2 - a1
// 在这里,j 是负责计数第几项的
int d = a2 - a1;
for (int i = a1, j = 1; j <= n; j++, i += d)
cout << i << ' ';
输出等比数列
输出一个范围内的等比数列
输出等比数列的第n项
// 已知 a1 = 1, q = 2, n = 5
// 在这里,j 是负责计数第几项的
for (int i = 1, j = 1; j <= n; j++, i *= q)
cout << i << ' ';
输出斐波那契数列(循环迭代)
请输出斐波那契数列的第10项
// 已知斐波那契数列,1, 1, 2, 3, 5, 8,...
// 注意这个代码的实现,叫“循环迭代”
int a = 1, b = 1, c;
for (int i = 3; i <= 10; i++) {
c = a + b;
a = b;
b = c;
}
cout << c;
如果问,请输出斐波那契数列的第2项。
以上代码,还适用吗?如何处理呢?
提示
循环计数¶
输入 n 个数,输出 n 个数的和
循环判断¶
输出 1 ~ n 的所有奇数
输出 n 个数中,奇数和偶数分别有多少个
int n, x, odd = 0, even = 0;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> x;
if (x % 2 == 1) odd++; // if (x % 2) 也可以这样写
else even++;
}
cout << odd << ' ' << even;
循环求最值¶
打擂台,求最大值、最小值
第一行,输入一个整数 n
第二行,输入 n 个数
输出 n 个数中的最大值和最小值