C08-4.6循环3
原题链接:38471.note12025-04-06 18:55:56
发布于:江苏
一、作业回顾
T1 如意金箍棒II。
循环条件所表达的含义是满足的时候执行,当条件成立的时候执行循环体中的内容。
本题还需要注意最终的长度是小于给定的目标长度。
#include <iostream>
using namespace std;
int main(){
int n,w;
int k = 0;
cin >> n >> w;
while (n >= w) {
n=n/2;
++k; //k++;//k += 1; //k=k+1;
}
cout << k;
return 0;
}
T2 加一问题
因为具体哪一次变成了整数一不清楚,还是借助 while 循环,每次循环内对这个奇数或偶数进行处理,处理完毕后输出。。
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
while (n>1) {
if(n%2==1) {
n=n*2+2;
} else {
n/=2;
}
cout << n << endl;
}
cout << "over";
return 0;
}
二、break与 continue
break是跳出当前循环,后面的都不执行了。
continue是跳过本次循环,只是当前的这次不执行了,后面的还是执行的。
#include<iostream>
using namespace std;
int main(){
for (int i=1; i<=10; ++i){
// if (i == 6) break; //跳出当前循环
if (i == 6) continue; //继续 跳过本次循环
cout << i << " ";
}
return 0;
}
三、打擂台找最值
注意开始擂主的选择,逐一比较取找到最值。
#include<iostream>
#include <limits.h>
using namespace std;
//打擂台的方法找最值
//先假设一个擂主: 需要注意最大值的擂主开始是比较小的,最小值的擂主开始是比较大的。
int main(){
int n, t;
int maxx = -99999999; //INT_MIN; //int类型的最小值, INT_MAX
cin >> n;
for (int i=1; i<=n; i++){
cin >> t;
if (t > maxx){ //如果t比擂主maxx 要大
maxx = t; //更新擂主 为 t
}
}
cout << maxx;
return 0;
}
四、课堂练习
实例1:输出数字
循环对应的次数, 每次输入之后就输出即可。
#include<iostream>
using namespace std;
int main(){
int n, t;
cin >> n;
for (int i=1; i<=n; i++){
cin>>t;
cout<<t <<' ';
}
return 0;
}
实例2:输出奇数
再上一题的基础上添加一个条件判断即可。
#include<iostream>
using namespace std;
int main(){
int n, t;
cin >> n;
for (int i=1; i<=n; i++){
cin >> t;
if (t%2)
cout << t <<' ';
}
return 0;
}
实例3:三倍问题
同上一题基本上一致,判断条件的修改。
#include<iostream>
using namespace std;
int main(){
int n;
cin >> n;
for (int i=1; i<=n; i++){
if (i%3==0)
cout << i << " ";
}
return 0;
}
实例4:压岁钱
while循环的()里面写的是输入表示一直输入,即无限输入。可以借助break,当条件满足的时候break。
#include <iostream>
using namespace std;
int main(){
int k, cnt= 0;
int money; // 每年的工资
cin >> k;
while (cin >> money) { //循环一直输入
if (money >= k) break;
cnt++;
}
cout << cnt;
return 0;
}
四、作业提示
奇顺偶逆
主要的思路是每次输出两个数字,分成一对一对的进行输出即可。
1 10 、3 8、 5 6、 7 4、 9 2
//b可以从最大值开始往小的数字减少
for(int i=1; i<=n; i+=2){
cout << i << ' ' << b <<' ';
________;//b该如何变化
}
这里空空如也
有帮助,赞一个