基于visual Studio2013解决面试题之0307最后谁剩下
生活随笔
收集整理的這篇文章主要介紹了
基于visual Studio2013解决面试题之0307最后谁剩下
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
解決代碼及點評
/* n 個數字(0,1,…,n-1)形成一個圓圈,從數字 0 開始,每次從這個圓圈中刪除第 m 個數字(第一個為當前數字本身,第二個為當前數字的下一個數字)。當一個數字刪除后, 從被刪除數字的下一個繼續刪除第 m 個數字。求出在這個圓圈中剩下的最后一個數字。 */#include <iostream> using namespace std;// 鏈表節點,我們使用鏈表來進行操作,目的是為了簡化,當有人退出時,在鏈表刪除更加方便 struct LinkNode {LinkNode(int n):nValue(n){}int nValue;LinkNode *pNext; };int main() {int m, n, i;cout<<"請輸入n的值:";cin>>n;cout<<"請輸入m的值:";cin>>m;// 建立 0~n+1的鏈表LinkNode *pHead = new LinkNode(0);pHead->pNext = pHead;LinkNode *pCur = pHead;for (i = 1; i < n; i++){LinkNode *pTmp = new LinkNode(i);pCur->pNext = pTmp;pTmp->pNext = pHead;pCur = pCur->pNext; // pCur總是指向最后一個節點,每次都把新節點加入到pCur后面}// 游戲在這里開始while (pHead != pHead->pNext) // 當環形單鏈表只剩下一個元素時,就結束 pHead == pHead->pNext表示只有一個元素{for (i = 1; i < m-1; i++) // 在這里數數{pHead = pHead->pNext;}// 數到之后開始刪除操作pHead->pNext = pHead->pNext->pNext; //刪除pHead的下一個元素pHead = pHead->pNext; //將pHead下移一位,從刪除的下一位開始重新數}// 最后打印剩下的valuecout<<pHead->nValue<<endl;return 0;system("pause");return 0; }代碼下載及其運行
代碼下載地址:http://download.csdn.net/detail/yincheng01/6704519
解壓密碼:c.itcast.cn
下載代碼并解壓后,用VC2013打開interview.sln,并設置對應的啟動項目后,點擊運行即可,具體步驟如下:
1)設置啟動項目:右鍵點擊解決方案,在彈出菜單中選擇“設置啟動項目”
2)在下拉框中選擇相應項目,項目名和博客編號一致
3)點擊“本地Windows調試器”運行
程序運行結果
轉載于:https://www.cnblogs.com/niulanshan/p/6175162.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的基于visual Studio2013解决面试题之0307最后谁剩下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《C++ Primer 4th》读书笔记
- 下一篇: java的关于流程结构做的几个案例