银行业务队列简单模拟 (25 分)c语言c++
生活随笔
收集整理的這篇文章主要介紹了
银行业务队列简单模拟 (25 分)c语言c++
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
7-2 銀行業務隊列簡單模擬 (25 分)
設某銀行有A、B兩個業務窗口,且處理業務的速度不一樣,其中A窗口處理速度是B窗口的2倍 ——
即當A窗口每處理完2個顧客時,B窗口處理完1個顧客。給定到達銀行的顧客序列,請按業務完成的順序輸出顧客序列。假定不考慮顧客先后到達的時間間隔,并且當不同窗口同時處理完2個顧客時,A窗口顧客優先輸出。
輸入格式:
輸入為一行正整數,其中第1個數字N(≤1000)為顧客總數,后面跟著N位顧客的編號。編號為奇數的顧客需要到A窗口辦理業務,為偶數的顧客則去B窗口。數字間以空格分隔。
輸出格式:
按業務處理完成的順序輸出顧客的編號。數字間以空格分隔,但最后一個編號后不能有多余的空格。
輸入樣例:
8 2 1 3 9 4 11 13 15
輸出樣例:
1 3 2 9 11 4 13 15
#include<stdio.h>//c語言寫的有點亂,邏輯不太行。而且沒有隊列int main() {int n;scanf("%d",&n);int a[n];for(int i=0;i<n;i++)scanf("%d",&a[i]);int p1=0,p2=0;int cnt1=0,cnt2=0;int cnt=0;while(cnt<n){cnt1=0,cnt2=0;while(cnt1<2&&p2<n){if(a[p2]%2==1){if(cnt)printf(" ");printf("%d",a[p2]);cnt1++;cnt++;}p2++;if(p2==n)break;}while(cnt2<1&&p1<n){if(a[p1]%2==0){if(cnt)printf(" ");printf("%d",a[p1]);cnt2++;cnt++;}p1++;if(p1==n)break;}} } #include<bits/stdc++.h>//c++ using namespace std;queue<int>a;//奇數隊列 queue<int>b;//偶數隊列int main() {int n;cin>>n;for(int i=0;i<n;i++){int tem;cin>>tem;if(tem%2==1)a.push(tem);elseb.push(tem);}int cnt=0;int flag=1;while(cnt<n){int cnt1=0;while(!a.empty()&&cnt1<2){if(flag==1){cout<<a.front();flag=0;}else{cout<<" "<<a.front();}cnt1++;cnt++;a.pop();}if(!b.empty()){if(flag==1){cout<<b.front();flag=0;}elsecout<<" "<<b.front();b.pop();cnt++; }} } 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的银行业务队列简单模拟 (25 分)c语言c++的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: L2-1 简单计算器 (25 分)详解c
- 下一篇: L2-1 包装机 (25 分)(STL4