当条件成立时执行循环体,循环体执行完后,回到条件处再次判断和执行;
当条件不成立时,整个 while 语句终止,执行右花括下面的语句。
x
using namespace std;
int main() {
int n, i, sum = 0;
cin >> n; // 输入 n ,例如 100
i = 1;
while (i<=n) { // 当 i ≤ n 时
sum += i; // sum 增加 i
i++; // i 增 1
} // 遇到 while 结束的右花括号,则回到 while 条件处再次判断
cout << sum << endl; // 输出总和 sum
return 0;
}
xxxxxxxxxx
using namespace std;
int main() {
int ans = 0; // 折叠次数 ans 初始 0 次
double h = 0.001; // 纸张厚度 h 初始 0.001 米,有小数 double 型
while (h < 8844.43) { // 当厚度小于珠峰高度
ans ++; // 折叠次增 1
h *= 2; // 厚度翻倍,然后回到 while 处判断
}
cout << ans << endl; // 输出最少的折叠次数
return 0;
}
xxxxxxxxxx
int s, n = 0, left = 0; // 不等式左侧累加和 left
cin >> s;
while (left < s) { // 当左侧值 left 小于 s 时
n ++; // n 增 1
left += n * n; // n 的平方值累加入 left
}
cout << n << endl; // 输出答案
xxxxxxxxxx
int x, sum = 0; // 输入数 x ,最终的数字和 sum
cin >> x;
while (x > 0) {
sum += x % 10; // 取到 x 的个位,如 365 的 5 累加入 sum
x /= 10; // 去掉个位,如 x = 365 去掉个位后变成 x = 36
}
cout << sum << endl; // 输出结果
树高 h 米,蜗牛白天往上爬 a 米,晚上睡觉下滑 b 米,蜗牛要几天才能爬到树顶 ?
蜗牛有周休一天的习惯,即每爬 6 天,第 7 天就白天休息而不上爬,但晚上睡觉仍会掉下 b 米。
xxxxxxxxxx
int h, a, b, d = 0; // d 为爬的天数,初始为 0
cin >> h >> a >> b; // h 树高, a 白天上爬距离, b 晚上下滑距离
while (1) { // 构造无限循环
d ++; // 天数增 1
if (d % 7 != 0) h -= a; // 非休息天白天上爬,相当于树高度变小
if (h <= 0) break; // 爬到树顶或超过树顶,break 跳出 while 循环
h += b; // 晚上下滑,相当于树高度增加
}
cout << d << endl; // 输出答案