免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
2018 藍(lán)橋杯省賽 B 組模擬賽(五)題目及解析

A. 結(jié)果填空:矩陣求和

給你一個(gè)從 n×n 的矩陣,里面填充 1 到 n×n 。例如當(dāng) n 等于 3 的時(shí)候,填充的矩陣如下。

1 2 34 5 67 8 9

現(xiàn)在我們把矩陣中的每條邊的中點(diǎn)連起來,這樣形成了一個(gè)新的矩形,請(qǐng)你計(jì)算一下這個(gè)新的矩形的覆蓋的數(shù)字的和。比如,n = 3 的時(shí)候矩形覆蓋的數(shù)字如下。

  24 5 6  8

那么當(dāng) n 等于 101 的時(shí)候,矩陣和是多少?

題目解析:
這題畫一個(gè)7×7的矩陣觀察起來會(huì)比較直觀。矩形邊中點(diǎn)的連線包括邊上的 元素和所有處于邊界點(diǎn)之間的元素。在找準(zhǔn)行列關(guān)系之后就很簡單了。

填空答案如下:

#include <iostream>using namespace std;int main() {//    cout << "/*請(qǐng)?jiān)谶@里填入答案*/" << endl;    cout << "26020201" << endl;    return 0;}

題解代碼如下:

#include <iostream>#include <cmath>using namespace std;int a[1000][1000];int main(){    int n;    cin>>n;    //n=101;    int p=1;    for(int i=0;i<n;i++){        for(int j=0;j<n;j++){            a[i][j]=p++;        }    }    int m=n/2;    int sum=0;    for(int i=0;i<n;i++){        for(int j=0;j<n;j++){            if(i<=m && j>=m-i && j<=m+i){                sum+=a[i][j];            }else if(i>m && j>=m-(n-i-1) && j<=m+(n-i-1)){                sum+=a[i][j];            }        }    }    cout<<sum;    return 0;}

B. 結(jié)果填空:素?cái)?shù)個(gè)數(shù)

用 0,1,2,3?7 這 8 個(gè)數(shù)組成的所有整數(shù)中,質(zhì)數(shù)有多少個(gè)(每個(gè)數(shù)字必須用到且只能用一次)。

提示:以 0 開始的數(shù)字是非法數(shù)字。

題目解析:
這題考察全排列,注意第一個(gè)數(shù)字不能是0。

填空答案如下:

#include <iostream>using namespace std;int main() {//    cout << "/*請(qǐng)?jiān)谶@里填入答案*/" << endl;    cout << "2668" << endl;    return 0;}

題解代碼如下:

#include <iostream>#include <cmath>#include <algorithm>using namespace std;int isPrime(int n){    for(int i=2;i<=sqrt(n);i++){        if(n%i==0) return 0;    }    return 1;}int main(){    int cnt=0;    int a[8]={0,1,2,3,4,5,6,7};    do{        if(a[0]==0) continue;        int sum=0;        for(int i=0;i<8;i++){            sum=sum*10+a[i];        }        if(isPrime(sum)) cnt++;    }while(next_permutation(a,a+8));    cout<<cnt;    return 0;}

D. 代碼填空:快速冪

一個(gè)數(shù)的整數(shù)次冪,是我們?cè)谟?jì)算中經(jīng)常用到的,但是怎么可以在 O(log(n)) 的時(shí)間內(nèi)算出結(jié)果呢?

代碼框中的代碼是一種實(shí)現(xiàn),請(qǐng)分析并填寫缺失的代碼,求 x^y mod p的結(jié)果。

題目解析:
這題主要考察y & 1。&是位與操作符,運(yùn)算法則是在二進(jìn)制數(shù)下,相同位的兩個(gè)數(shù)字都為1,則為1;若有一個(gè)不為1,則為0。
y & 1做位與操作,y&1是y和1做“按位與”運(yùn)算,1的二進(jìn)制只有末位是1,所以y & 1就是只保留y的末位(二進(jìn)制)。y & 1就表示了y的奇偶性。y & 1 == 1為奇數(shù),反之為偶數(shù)。

填空答案如下:

#include <iostream>using namespace std;int pw(int x, int y, int p) {    if (!y) {        return 1;    }//    int res = /*在這里填寫必要的代碼*/;    int res = pw(x,y-1,p)+pw(x,y-1,p)*!(y&1);    if (y & 1) { //判斷奇偶數(shù),y&1==1為奇數(shù),反之為偶數(shù)        res = res * x % p;    }    return res;}int main() {    int x, y, p;    cin >> x >> y >> p;    cout << pw(x, y, p) << endl;    return 0;}

E. 代碼填空:末尾零的個(gè)數(shù)

N! 末尾有多少個(gè) 0 呢?

N! = 1 x 2 x ··· x N。

代碼框中的代碼是一種實(shí)現(xiàn),請(qǐng)分析并填寫缺失的代碼。

填空答案如下:

#include <iostream>using namespace std;int main() {    int n, ans = 0;    cin >> n;    while (n) {      //ans += /*在這里填寫必要的代碼*/;        ans += n/=5;    }    cout << ans << endl;    return 0;}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
遞歸題目之斐波那契數(shù)列
2015年第六屆藍(lán)橋杯省賽真題(自己已懂的題目)
c 實(shí)現(xiàn)求最大子數(shù)組和(結(jié)對(duì)作業(yè))
與LSGO一起學(xué)“C++上機(jī)小練習(xí)10”參考代碼
【C 】循環(huán)結(jié)構(gòu)課后練習(xí)參考程序
從零開始學(xué)貪心算法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服