while循环的使用及其和for循环的对比总结
来源:互联网 发布:amd显卡驱动linux 编辑:程序博客网 时间:2024/06/03 13:51
<1>题目:输入数字m和n,删除第m个数字,并且以下一个数字作为起始,求最后一个数字。
#include<iostream>#include <vector>using namespace std;vector<int> vInt;void setNext(const vector<int>& v, int& nNowIndex){//cout<<nNowIndex;if(nNowIndex == v.size() - 1){nNowIndex = 0;}else{nNowIndex++;}if(v[nNowIndex] == 0){setNext(v, nNowIndex);}//cout<<"的下一个索引是:"<<nNowIndex<<endl;}void setZeroByNowIndex(vector<int>& v, int& nNowIndex, const int m){int i = 0;while(i < m){ setNext(v, nNowIndex);i++;}//cout<<"删除:"<<v[nNowIndex]<<endl;v[nNowIndex] = 0;setNext(v, nNowIndex);//cout<<"下个索引从"<<vInt[nNowIndex]<<"开始"<<endl;}void main(){int n, m; while(1){vInt.clear();cout<<"输入n,m: ";cin>>n>>m;for(int i = 0; i < n; i++){vInt.push_back(i + 1);}int nNowIndex = 0;for(int j = 0; j < n - 1; j++){setZeroByNowIndex(vInt, nNowIndex, m-1); //循环是从0开始作为第一个的}for(int k = 0; k < n; k++){if(vInt[k] != 0){cout<<"最后剩余的数字是: "<<vInt[k]<<endl<<endl;break;}}}}/*输入n,m: 9 5最后剩余的数字是: 8输入n,m: 6 4最后剩余的数字是: 5*/
总结:
1,查找下一个元素并没有在while中处理0,而是在setNext中处理的
2,while循环中,数组是从0开始的,因此将m减去1,才是要跳过m个数字,主要因为第m哥其实是仅仅跳过m-1个数字
这样就会让while循环执行m次。其实这样一分析就是变形的for循环啊<2>循环m次,while循环的写法(注意和for循环对比)总结:
外部变量是0的写法
while主体就是
int i = 0;while(i < 5){ stagement; i++;}外部变量不是0
int i = 5while(i > 0){ stagement; i--;}
<3>while 和 for循环对比总结:
int neighborCol = sp->getCol() - 1; while (neighborCol >= 0) { AnimationSprite *neighborSp = m_animalMatrix[sp->getRow() * m_width + neighborCol]; if (neighborSp && neighborSp->getIgnoreCheck()) { //如果此链中有标记为setIgnoreCheck(true)的特殊元素则不检测 chainList.clear(); return; } if (neighborSp && (neighborSp->getImgIndex() == sp->getImgIndex()) && !neighborSp->getIgnoreCheck()) { CloudSprite *cloudSp = m_cloudMatrix[neighborSp->getRow() * m_width + neighborSp->getCol()]; if (cloudSp) { return; } m_checkSpL = true; chainList.push_back(neighborSp); neighborCol--; } else { break; } }比如这个向左检查所有可以连接的串,显然while循环更擅长做:因为并不知道要循环多少次。这样可以循环到直到结束时才停止。
0 0
- while循环的使用及其和for循环的对比总结
- for循环和while循环的区别
- while循环和for循环的区别
- for循环和while循环的区别
- while、do...while、for循环的使用
- 循环结构(for循环和while循环的区别)
- 对比for 循环和while 循环,两种形式的优缺点各是什么?
- java之图案拼接-for循环和while的使用
- SHELLcase流程控制和for、while循环语句的使用
- for each和for循环的对比
- python的while和for循环
- for循环和它的while循环形式的区别
- python的for循环和while循环的一些代码
- 使用for循环代替while循环的场合
- python中while循环和for循环的用法
- for循环与while循环的区别和联系
- for 循环语句和 while 循环语句的区别
- 用FOR循环和WHILE循环实现跳动的心
- 示例8 DBMS_SQL程序包
- 示例9 事务控制语句
- Redis Java客户端Jredis
- PAT--List Components (25)--BFS,DFS经典
- 某浙大大牛分享的求职总结
- while循环的使用及其和for循环的对比总结
- 03-树1. List Leaves (25)
- 示例10 创建存储过程
- 示例11 调用存储过程
- Cocos2d-x《雷电大战》(5)-单例模式英雄飞机闪亮登场!
- RMI远程方法调用demo,适合新手
- 增加留言版块——在线留言板1
- 几种验证控件
- Restore IP Addresses