<source id="8h3pf"><input id="8h3pf"></input></source>
        <source id="8h3pf"><mark id="8h3pf"><label id="8h3pf"></label></mark></source>
          <source id="8h3pf"><menu id="8h3pf"><label id="8h3pf"></label></menu></source><video id="8h3pf"></video>

            “藍橋杯”模擬法(一)——日期問題(2017年試題G)






            點擊領取>>>藍橋杯算法講解視頻(適合Java,C語言選手)/ 藍橋杯歷年真題

            1.模擬法簡介

            模擬法,顧名思義,就是利用計算機模擬問題的求解過程,從而得到問題的解。模擬法由于簡單,因此又被稱為“不是算法的算法”。
            模擬法是學習算法的基礎,通過模擬可以學習編程的各類技巧,提升初學者建立各種編程邏輯模型的感覺。大部分模擬題目直接模擬就可以求解,還有少量模擬題目需要考生簡化模擬過程,否則可能會使邏輯復雜,導致求解用時過長。
            模擬法適用于問題求解清晰、運算規模較小的問題。如果問題求解的時空代價很大,就要考慮是否有其他更好的解決方案。

            2.【案例解析】不高興的津津

            津津上初中了。媽媽認為津津應該更加用功地學習,所以津津除了上學之外,還要參加媽媽為她報名的各科復習班。另外,媽媽每周還會送她去學習朗誦、舞蹈和鋼琴。但是津津如果一天上課超過8小時就會不高興,而且上得越久就越不高興。假設津津不會因為其他事不高興,并且她的不高興不會持續到第二天。請你幫忙檢查津津下周的日程安排,看看她下周會不會不高興;如果會,那么她哪天最不高興。
            輸入包括7行數據,分別表示周一到周日的日程安排。每行包括兩個小于10的非負整數,用空格隔開,分別表示津津在學校上課的時間和媽媽安排她上課的時間。
            輸出一個數字。如果津津不會不高興,則輸出0,如果會,則輸出最不高興的是周幾(用1,2,3,4,5,6,7分別表示周一,周二,周三,周四,周五,周六,周日)。如果有兩天或兩天以上不高興的程度一樣,則輸出時間最靠前的那一天。
            例如,輸入下列數據:
            5  3
            6  2
            5  3
            5  4
            0  4
            0  6
            則輸出為3。
            本題可以采用模擬方法依次判斷哪天最不高興,并將最不高興的那.天輸出,在輸出過程中要注意以下幾個問題。
            (1)判斷n個數中的最大值

            max= 0;
            for (i=1;i<=n;i++) //輸入n個數據
            {
            cin>>a;
            if (a>max)
            max=a; 
            }

            (2)數據存儲問題
            本題的數據一共有7組,不算多,也不算少,可以直接運算,也可以將數據存儲到數組后再進行計算。
            若不采用數組,則模擬的過程如下:

            int a,b,s,max=0, i,day=0;
            for (i=1;i<=7;i++)
            {
            cin>>a>>b;
            s=a+b;
            if ((s>max) && (s>8))
            {max=s,day=i; }
            }
            cout<<day<<endl;

            如果采用數組,則可以將數據存儲起來,在后續的操作中會更加方便,也更容易理解,采用數組模擬的方法如下:

            int a,b, i, day, max, array[8];
            char c;
            for(i=1;i<=7;i++)
            {
            cin>>a>>b;
            array[i]=a+b;
            }
            max=array[0];
            for(i=1;i<=7;i++)
            {
            if (max<array[i])
            {
            max=array[i];
            day=i;
            }
            if (max>8)
            cout<<day<<endl;
            else
            cout<<0<<endl;

            模擬法一般都不,但也會考查一些基礎算法,例如本題考查了如何在n個數中求最大值,及如何判斷津津的不高興條件。

            3. 本次程序練習——日期問題(2017年試題G)(答案見下期)

            【問題描述】
            小明正在整理一批文獻,這些文獻中出現了很多日期,小明知道這些日期都在1960年1月1日至2059年12月31日之間。令小明頭疼的是,這些日期采用的格式非常不統一,有采用“年/月/日”的,有采用“月/日/年”的,還有采用“日/月/年”的。更加麻煩的是,年份都省略了前兩位,使得文獻上的一個日期存在很多可能的日期與其對應。
            例如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。給出一個文獻上的日期,你能幫助小明判斷有哪些可能的日期與其對應嗎?
            [輸入格式]
            一個日期,格式是" AB/CD/EF" (0≤A,B,C,D,E,F≤9)。
            [輸出格式]
            輸出若干個不相同的日期,每個日期一行,格式是"yyyy- mm-dd"。多個日期按從早到晚的順序排列。
            [樣例輸入]
            02/03/04
            [樣例輸出]
            2002-03-04
            2004-02-03
            2004-03-02
            提示:
            本題的思路很簡單,將輸入的3個數據分別進行年、月、日的合法判斷,如果合法就輸出。但是求解本題要注意以下兩點。
            (1)月份數據的表示
            由于每月的天數沒有規律性,所以最好的方法就是利用數組將每月的天數表示出來,如:
            int days[13]={0, 31, 28,31, 30,31, 30, 31, 31, 30,31, 30, 31};
            這里還要注意閏年的問題,如果是閏年,則2月的數據就會不同,可以采用另個數組存儲,如:
            int leapdays [13]={0,31, 29,31, 30, 31,30,31,31,30,31,30,31};
            (2)合法年、月、日的存儲
            對于一組數據, 可能會出現重復的合法年、月、日。例如,輸入01/01/01,則3組合法數據都是2001-01-01,所以這里要去重復。
            (3)多個日期按從早到晚輸出。

            4.上期參考答案

            練習6 分解質因數
            參考程序一——吳炳毅的答案

            #include <iostream>
            using namespace std;
            int isPrime(int n)  //判斷是否為質數函數
            {
             int num=0;
              for(int k=2;k<=n;k++)
              {
               if(n%k==0)return 1;
              }
              return 0;
            }
            int primefactors(int m)  //計算一個數的質因數
            {
             int c=0;
             for(int j=2;j<=m;j++)
             {
               while(m%j==0&& isPrime(j))
              {
               c++;
               m=m/j;
              }
            }
            }
            return c; 
            }
            int main() 
            {
             int a,b;
             cout<<"input a and b:";
             cin>>a>>b;
             int sum=0;
             for(int i=a;i<=b;i++)
              sum+=primeFactors(i);
             cout<<sum<<endl;
            }

            參考程序二——申茂生答案

            #include <iostream>
            using namespace std;
            int nextprime(int a)//輸出下一個質數 
            {
             while(true)
             {
              int f=0;
              a++;
              for(int i=2;i<=a/2;i++)
              {
               if(a%i==0)
               {
                f=1;
                break;
               }
              }
              if(f==0)
               return a;
             }
            }
            int main()
            {
             int a,b,sum1=0;
             cin>>a>>b;
             for(int i=a;i<=b;i++)//從a到b的范圍 
             {
              int sum2=0;
              for(int j=2;j<=i/2;j=nextprime(j))//j為質數,若j整除i,則j為質因數 
              {
               int c=i;
               while(c%j==0)//判斷j的冥次方是否整除i 
               {
                sum2++; 
                //去注釋可看質因數整除i過程cout<<c<<' '<<j<<' '<<sum1+sum2<<endl;
                c/=j;
               }
              }
              if(sum2==0)//若sum2為0則說明i為質數,可以整除本身 
               sum2=1;
              sum1+=sum2;
             }
             cout<<sum1;
            }

            練習7:回文數  參考程序

            #include <iostream>
            #include <cmath> 
            //#include <string> 
            using namespace std;
            string rev(string s) // 字符串逆置
            {
             string ss(s.rbegin(),s.rend());
             return ss; 
             } 
            bool isPalindrome(string str)  //判斷字符串是否為回文 
            {  
                //rbegin() 返回一個逆向迭代器,指向字符串的結尾(第一個字符的前一個位置)。
                // rend(); 返回一個逆向迭代器,指向字符串的開頭(第一個字符的前一個位置)。
             string rStr(str.rbegin(),str.rend());
             if(str==rStr)
              return true;
             else
              return false;
            }
            int swapDec(string str,int r)//r進制字符串向十進制數轉換
            {
             int len=str.length();//字符串的長度
             int num=0//十進制數
             for(int i=len-1;i>=0;i--)
             {
              //把數字字符轉換成數值數據
              int n;
              if(str[i]>='A'&&str[i]<='F'
               n=str[i]-'A';
              else if(str[i]>='a'&&str[i]<='f')
                   n=str[i]-'a';
              else n=str[i]-'0';
              num+=n*pow(r,i);
              } 
              return num;
             } 
             
             string  swapR(int n,int r) //十進制數轉換為r進制的字符串
             
            {
              string str="";//r進制字符串 
              while(n)
              {
               string t;
                 int m=n%r;
                 switch(m)
                 {
                  case 10: t="A"break;
                  case 11: t="B"break;
                  case 12: t="C"break;
                  case 13: t="D"break;
                  case 14: t="E"break;
                  case 15: t="F"break;
                  default:t=m+'0'//整型轉換成字符串 
              }
                str=t+str; //拼接字符串 
                n=n/r; //修改n的值 
               } 
             return str; 
             } 
            int main()
            {
             int n; //進制 
             string m;//數據 
             cout<<"input n:";
             cin>>n;
             cout<<"input m:";
             cin>>m; 
             int counts=0;
             while(!isPalindrome(m)) //如果m不是回文
             {
              int x=  swapDec(m,n);//x是m的十進制數
              int y=  swapDec(rev(m),n);//y是m的逆序串的十進制數;
              int z=x+y;//z是兩個數的和
              m=swapR(z, n) ;// 修改m的值,接著去檢查m是否為回文 
              counts++;//計數器加1;
              if(counts>30) { //大于30次,則退出循環 
               break;  
               counts=-1;
              }
              } 
                cout<<counts<<endl;
             return 0;
            }

            微信公眾號搜索: 北京小學學習資料      家長升學指南    家長升學訓練營 關注公眾號,獲取最新資訊!  

            圖片

            掃碼添加“家長論壇”微信好友(微信號 16619908263

            獲取藍橋杯算法講解視頻(適合Java,C語言選手)/ 藍橋杯歷年真題
            咨詢信息學奧賽政策請撥打電話 16619908263 (同微信號)


            -END-

            圖片



            八少八素 早培:  

            ①《人大附中早培海選必刷》《八中海選訓練與解析》電子版教材
            http://www.syzly.net/question/110094
            ② 八少八素、人大附早培神測千題(上 下冊)
            http://www.syzly.net/question/110096
            ③ 人大附、八中海選神測萬題練習冊及答案解析.pdf
            http://www.syzly.net/question/110097
            ④ 八少八素試題分享&人大附早培班試題分享+神測復習資料
            http://www.syzly.net/question/110099

            北京幼升小、人大附早早培資料:  

            ① 北京各學校幼升小面試真題、小學入學白皮書、學區房詳解
            http://www.syzly.net/question/6232
            ② 知名機構人大附早早培(zzp)學前集訓隊-數學/神測和動手
            http://www.syzly.net/question/110082
            3)知名機構人大附早早培(zzp)學前集訓隊-數學/神測和動手
            http://www.syzly.net/question/110082
            4)知名機構人大附早早培(zzp)沖刺班講義(可自學)-春(下)數學
            http://www.syzly.net/question/109824
            5)知名機構人大附早早培(zzp)集訓隊- 春(下)- 神測和動手
            http://www.syzly.net/question/109823
            6)知名機構人大附早早培(zzp)集訓隊- 春(中)- 神測和動手
            http://www.syzly.net/question/109820

            杯賽-解析版 附詳細解題過程:  

            ① 華杯賽/華數之星真題試卷-解析版 附詳細解題過程
            http://www.syzly.net/question/110072
            ② 迎春杯/青少年創新能力測試-解析版 附詳細解題過程
            http://www.syzly.net/question/110073
            ③ 希望杯/希望數學-解析版 附詳細解題過程
            http://www.syzly.net/question/110074
            ④ YMO世界青少年奧林匹克數學競賽-解析版 附詳細解題過程
            http://www.syzly.net/question/110075
            ⑤ 美國數學思維活動AMC8/10/12真題及答案解析
            http://www.syzly.net/question/30256
            ⑥ 歷年全國小數測初評、終評真題及答案解析
            http://www.syzly.net/question/109378
            ⑦ 美國數學大聯盟杯-解析版 附詳細解題過程
            http://www.syzly.net/question/110076
            ⑧ 鵬程杯-解析版 附詳細解題過程
            http://www.syzly.net/question/110077
            9)IMAS小學中年/高年級第一/二輪檢測試題競賽數學試卷幾答案解析匯總
            http://www.syzly.net/question/118541
            10)2012-2021年Math Kangaroo袋鼠數學1-6年級競賽中英+全英歷年真題電子版(帶答案)
            http://www.syzly.net/question/118507
            11)2012-2021年Math Kangaroo袋鼠數學7-10年級競賽中英+全英歷年真題電子版(帶答案)
            http://www.syzly.net/question/118508
            12)32套香港亞太杯/亞太杯4-6年級競賽初賽、決賽數學試卷-解析版 附詳細解題過程
            http://www.syzly.net/question/118509

            13)114套香港亞洲國際數學奧林匹克公開賽(AIMO)1-6年級競賽初賽、復賽數學試卷-解析版 附詳細解題過程
            http://www.syzly.net/question/118510
            14)語文素養大賽 第七-第十屆真題(含答案)
            http://www.syzly.net/question/118511
            15)IMC國際數學競賽歷年真題合集
            http://www.syzly.net/question/118739
            16)[可打印]中環杯-解析版 附詳細解題過程
            http://www.syzly.net/question/118514
            17)[可打印]走美杯-解析版 附詳細解題過程
            http://www.syzly.net/question/118515

            18)[可打印]全國小學生數學能力測評真題試卷-解析版 附詳細解題過程
            http://www.syzly.net/question/118516
            19)美國數學思維活動AMC8/10/12真題
            http://www.syzly.net/question/118517
            20)數學花園探秘總決賽暨迎春杯大師賽試題合集
            http://www.syzly.net/question/118543
            北京小升初:

            ① 北京小升初各區真題、模擬題答案和詳細過程解析[可打印]
            http://www.syzly.net/question/110105
            2)北京小升初語數英筆試面試真題、點招、分班考真題、簡歷模板
            http://www.syzly.net/question/118506

            人大附練習冊含答案「有答案」 —— 初一到高三

            http://www.syzly.net/question/118494


            信息學奧賽

            1)NOIP 1995年-2021年CSP提高組提高組復賽試題
            http://www.syzly.net/question/118495
            2)中小學生編程信息學奧賽NOIP中級班課程
            http://www.syzly.net/question/118496
            3)編程L1-L2系統班
            http://www.syzly.net/question/118497

            原版英文教材
            1)最新English in mind最全資源,含學生書、教師書、練習冊
            http://www.syzly.net/question/118518

            2)劍橋頂級英文原版教材Unlock!聽說讀寫齊全 0-5級 電子課本、教師用書、視頻、音頻
            http://www.syzly.net/question/118519

            3)TOEFL Junior小托福語言形式與含義、聽力、閱讀真題模擬題試卷及電子版教材
            http://www.syzly.net/question/118520

            4)全球頂級閱讀教材 Reading Explorer 視頻、音頻、學生用書、老師用書
            http://www.syzly.net/question/118521


            西安交通大學少年班:

            1)西安交通大學“少年班” 全科備考資料+模擬題+歷年真題+ 面試/復試資料
            http://www.syzly.net/question/11809

            2)西安交通大學“少年班” 考前突擊班 數學英語文綜理綜(TK)【數學+理綜+文綜+英語(85節)】
            http://www.syzly.net/question/118475
            3)西安交通大學少年班 數理化集訓營【數學12講+化學4講+物理8講+其他5講】
            http://www.syzly.net/question/118474
            4)西安交通大學少年班數理化集訓【數學15講+物理12講+化學4講+文綜知識點模擬3講】
            http://www.syzly.net/question/118473


            IESOL朗思真題

            1)IESOL朗思A2考試6套真題--帶聽力、答案、聽力文本、答題卡
            http://www.syzly.net/question/1184982)IESOL朗思B1考試6套真題--帶聽力、答案、聽力文本、答題卡
            http://www.syzly.net/question/1184993)IESOL朗思B2考試12套真題--帶聽力、答案、聽力文本、答題卡
            http://www.syzly.net/question/1185004)IESOL朗思C1考試6套真題--帶聽力、答案、聽力文本、答題卡
            http://www.syzly.net/question/1185015)LRN—朗思A2考試5套真題--帶聽力、答案、聽力文本、答題卡
            http://www.syzly.net/question/1185026)LRN—朗思B1考試6套真題--帶聽力、答案、聽力文本、答題卡
            http://www.syzly.net/question/1187367)LRN—朗思B2考試10套真題--帶聽力、答案、聽力文本、答題卡
            http://www.syzly.net/question/118503


            KET/PET/FCE/IESOL: 

            1) KET/PET官方真題、官網樣卷、聽力閱讀答題卡、高頻單詞表 
            http://www.syzly.net/question/1101032)KET聽說讀寫逐項突破
            http://www.syzly.net/question/1185223)38講KET劍橋語法初級
            http://www.syzly.net/question/1185234)【完結】66天KET單詞訓練營
            http://www.syzly.net/question/1185245)Nancy KET考前沖刺真題課(真題講解)
            http://www.syzly.net/question/1185256)170講 PET劍橋語法 百日營
            http://www.syzly.net/question/1185267)劍橋PET英語精講75節
            http://www.syzly.net/question/1185278)20講Nancy2020新版PET沖刺訓練營
            http://www.syzly.net/question/1185289)60講北外青少FCE口語/寫作/聽力/閱讀考官通關班【完結】
            http://www.syzly.net/question/118529

            北京小學期中期末試卷:
            ① 北京小學1-6年級上學期期中試卷+單元測試試卷及答案+單元知識點匯總
            http://www.syzly.net/question/24908
            ② 北京各小學1-6年級期末真題試卷及解析 復習資料匯總
            http://www.syzly.net/question/2952
            ③ 北京小學1-6年級下學期期中試卷+單元測試試卷及答案+單元知識點匯總
            http://www.syzly.net/question/24914

            ④ 北京各小學1-6年級下學期期末真題試卷及解析 復習資料匯總
            http://www.syzly.net/question/24915
            5)157套-北京各小學1-6年級下學期語文/數學/英語期末試卷及答案
            http://www.syzly.net/question/118491
            6)北京各區小學1-6年級語數英各科期中真題及答案解析
            http://www.syzly.net/question/118492
            7)百套北京各區小學1-6年級語數英各科真題及答案解析
            http://www.syzly.net/question/118493

            高思學校競賽數學導引
            高思學校競賽數學導引三年級詳解升級版教材和配套課程(69講錄播課)
            http://www.syzly.net/question/118534高思學校競賽數學導引四年級詳解升級版教材和配套課程(72講錄播課)
            http://www.syzly.net/question/118535高思學校競賽數學導引五年級詳解升級版教材和配套課程(72講錄播課)
            http://www.syzly.net/question/118536三年級高思學校競賽數學課本&競賽數學同步課程
            http://www.syzly.net/question/118530四年級高思學校競賽數學課本&競賽數學同步課程
            http://www.syzly.net/question/118531五年級高思學校競賽數學課本&競賽數學同步課程
            http://www.syzly.net/question/118532六年級高思學校競賽數學課本&競賽數學同步課程
            http://www.syzly.net/question/118533


            北京初中:
            ① 北京中考真題、北京各區初三一模、二模試卷及答案解析匯總
            http://www.syzly.net/question/2815
            ② 中考英語聽說考試試卷及答案、口語和聽力訓練題及備考視頻
            http://www.syzly.net/question/24732

            北京高中: 
            ① 北京高考英語聽力機考模擬試卷及答案、聽力原文、音頻
            http://www.syzly.net/question/24738
            ② 北京高考一模、二模、高考試卷真題答案及解析、視頻解析
            http://www.syzly.net/question/5684

            添加 家長論壇微信 

            圖片


            獲取   以上資料


            圖片

            已邀請:

            要回復問題請先登錄注冊

            色丫头免费影院
              <source id="8h3pf"><input id="8h3pf"></input></source>
                  <source id="8h3pf"><mark id="8h3pf"><label id="8h3pf"></label></mark></source>
                    <source id="8h3pf"><menu id="8h3pf"><label id="8h3pf"></label></menu></source><video id="8h3pf"></video>