第一章 基本语法-7循环(while)
2015-10-23 16:36
204 查看
while循环语句也是比较常用的,它的格式
while(条件){
满足条件执行
}
相对来说,当不知道要循环多少次的时候可以使用此循环方法。它与for循环可以互相转化
例如你想输入一个数,每次对它整除2,看看除几次之后他会等于0;这样,你就可以使用while循环,如下格式:
while(a!=0){
a=a/2;
次数+1;
}
当然也可以使用for循环来做,格式如下:
for(int 次数=0;a!=0;次数++){
a=a/2;
}
实例1:输入一个数,判断它是不是素数。
素数概念:只有1和它本身两个约数的大于1的自然数。
分析:根据素数的概念,对于一个数n,可以检测它在2~n-1范围内有没有约数,有的话则是合数,没有则是素数。
进一步分析,根据上一篇求约数的文章,我们知道,只有检测2~根号N+1范围内没有约数即可;所以代码可以这样写
for(int i=2;i<=根号n;i++){
if(n%i==0){
则i是n的约数,即n是合数,不用再循环了
跳出循环
}
}
本篇学习while,所以我们使用while来写:
int i=2;
bool tag = false;
while(n%i!=0 &&
i<=根号n){
i++;
}
if (i > sqrt(n)) {
//是素数
tag = true;
}
代码:
例题2:输出100以内的所以素数
在上述程序的基础上加上一层循环,此外由于大于2的素数不可能是偶数,所以循环的时候可以跳过偶数
for(int n=3;n<100;n=n+2){
里面写上上面判断方法即可
}
while(条件){
满足条件执行
}
相对来说,当不知道要循环多少次的时候可以使用此循环方法。它与for循环可以互相转化
例如你想输入一个数,每次对它整除2,看看除几次之后他会等于0;这样,你就可以使用while循环,如下格式:
while(a!=0){
a=a/2;
次数+1;
}
当然也可以使用for循环来做,格式如下:
for(int 次数=0;a!=0;次数++){
a=a/2;
}
实例1:输入一个数,判断它是不是素数。
素数概念:只有1和它本身两个约数的大于1的自然数。
分析:根据素数的概念,对于一个数n,可以检测它在2~n-1范围内有没有约数,有的话则是合数,没有则是素数。
进一步分析,根据上一篇求约数的文章,我们知道,只有检测2~根号N+1范围内没有约数即可;所以代码可以这样写
for(int i=2;i<=根号n;i++){
if(n%i==0){
则i是n的约数,即n是合数,不用再循环了
跳出循环
}
}
本篇学习while,所以我们使用while来写:
int i=2;
bool tag = false;
while(n%i!=0 &&
i<=根号n){
i++;
}
if (i > sqrt(n)) {
//是素数
tag = true;
}
代码:
#include<iostream> #include <math.h> using namespace std; int main() { int n; int i = 2; bool tag = false; cout<<"n="; cin >> n; // for (i = 2; i <= sqrt(n); i++) { // if (n % i == 0) { // //是合数 // tag = false; // break; // } // } // if (i > sqrt(n)) { // //是素数 // tag = true; // } while(n%i!=0&&i <= sqrt(n)){ i++; } if (i > sqrt(n)) { //是素数 tag = true; } if (tag) { cout << n << "是素数"; }else{ cout << n << "是合数"; } return 0; }
例题2:输出100以内的所以素数
在上述程序的基础上加上一层循环,此外由于大于2的素数不可能是偶数,所以循环的时候可以跳过偶数
for(int n=3;n<100;n=n+2){
里面写上上面判断方法即可
}
相关文章推荐
- 分形<一>分形简介
- eclipse mars对C++11标准的支持
- 多维分析OLAP引擎Mondrian学习
- 新建表格
- 杭电1017--整数问题
- 国内网盘
- 不要过早追求通用
- SQL Server Management Studio的对象资源管理器的使用
- servlet都做了什么?
- oracle定时任务更新数据
- Linux那些事儿之我是Block层(5)浓缩就是精华?(二) .
- IOS 通过POST方式与服务器通信
- [C++]linux下使用occi连接oracle遇到的两个错误
- 数据库新建
- Activity
- 复制粘贴有害
- 关于模块架构(高内聚低耦合)
- 图片是否加载完毕
- test1
- JSTL标签使用