北流網(wǎng)站建設(shè)培訓(xùn)班招生方案
即約分?jǐn)?shù)
題目
思路
遍歷所有的x,y,判斷x/y是不是即越約分?jǐn)?shù)。
代碼
#include <iostream>
using namespace std;
int gcd(int x,int y)
{int r;while(y!=0){r=x%y;x=y;y=r;}return x;
}
int main()
{// 請(qǐng)?jiān)诖溯斎肽拇aint sum=4039;//1/y和x/1都是for(int x=2;x<=2020;x++){for(int y=2;y<=2020;y++){int m=gcd(x,y);if(m==1) sum++;}}cout<<sum;return 0;
}
?
蛇形填數(shù)
題目
?思路
設(shè)i為某個(gè)數(shù)所在行,j為某個(gè)數(shù)所在列。(i+j)為偶數(shù)時(shí),蛇形矩陣往右上方走,(i+j)為奇數(shù)時(shí),蛇形矩陣往左下方走。(20+20)為偶數(shù),往右上方走。所以mat[20][20]=mat[39][1]+19=mat[38][1]+20=1+2+...+38+20;
代碼
#include <iostream>
using namespace std;
int main()
{// 請(qǐng)?jiān)诖溯斎肽拇aint sum=0;for(int i=1;i<=38;i++)sum+=i;sum+=20;cout<<sum;return 0;
}
?七段碼
題目
思路
總共七個(gè)二極管,每一個(gè)都可以選或不選,列舉完七個(gè)二極管選或不選后,判斷選好的二極管有沒(méi)有連成一片(如果只選了一個(gè)那就不用判斷)。
代碼
#include<iostream>
using namespace std;
int used[10];
int sum;
int num;//使用燈泡的數(shù)量
bool find(int n)
{//找有沒(méi)有與n相鄰的燈泡在使用switch (n){case 1: if(used[2]||used[6]) return true; break;case 2: if(used[1]||used[3]||used[7]) return true;break;case 3: if(used[2]||used[4]||used[7]) return true;break;case 4: if(used[3]||used[5]) return true;break;case 5: if(used[4]||used[6]||used[7]) return true;break;case 6: if(used[1]||used[5]||used[7]) return true;break;case 7: if(used[2]||used[3]||used[5]||used[6]) return true;break;}return false;
}
void dfs(int depth)
{if(depth>7){if(num==1){sum++;return ;}for(int k=1;k<=7;k++){if(used[k]==1&&!find(k)){//如果在使用的燈泡沒(méi)有相鄰燈泡在使用,那不符合。return ;}}sum++;return ;}//用這一個(gè)used[depth]=1;num++;dfs(depth+1);//不用這一個(gè)used[depth]=0;num--;dfs(depth+1);
}
int main()
{sum=0;num=0;dfs(1);cout<<sum;
}
結(jié)果
這個(gè)代碼直接提交會(huì)超時(shí),估計(jì)是遞歸次數(shù)太多,但是題目要求輸出結(jié)果即可。所以我們可以在dev上先運(yùn)行出結(jié)果,然后直接提交輸出那個(gè)結(jié)果。?
跑步鍛煉
題目
思路
遍歷2000.1.1到2020.10.1的每一天,周一或初一就+2,否則+1,最后輸出。
代碼
#include <iostream>
using namespace std;
int main()
{// 請(qǐng)?jiān)诖溯斎肽拇aint sum=0;int year=2000,month=1,day=1;int week=6;int a[]={0,31,29,31,30,31,30,31,31,30,31,30,31};//2000,2004,2008,2012,2016,2020while(!(year==2020&&month==10&&day==2)){if(day==1||week==1){sum+=2;}else{sum+=1;}day++;if(week==7) week=1;else week++;week%=8;//跨月if(day==a[month]+1){//跨年if(month==12){month=0;//出去還會(huì)+變成1year++;if(year==2004||year==2008||year==2012||year==2016||year==2020) a[2]=29;else a[2]=28;}//跨越不跨年month++;day=1;}}cout<<sum;return 0;
}
結(jié)果?
平方和
題目
思路
遍歷1到2019計(jì)算平方和
代碼
#include <iostream>
using namespace std;
int main()
{// 請(qǐng)?jiān)诖溯斎肽拇along long sum=14362;for(int i=41;i<=99;i++){int a=i%10;int b=i/10;if(a==2||a==0||a==1||a==9||b==0||b==1||b==9||b==2)sum+=i*i;}for(long long i=100;i<=999;i++){int a=i%10;int b=i/10%10;int c=i/100;if(a==2||a==0||a==1||a==9||b==2||b==0||b==1||b==9||c==2||c==0||c==1||c==9)sum+=i*i;}for(long long i=1000;i<=2019;i++){int a=i%10;int b=i/10%10;int c=i/10/10%10;int d=i/1000;if(a==2||a==0||a==1||a==9||b==2||b==0||b==1||b==9||c==2||c==0||c==1||c==9||d==2||d==1||d==0||d==9)sum+=i*i;}cout<<sum;return 0;
}
結(jié)果
數(shù)列求值
題目
思路
從i=4開始遍歷到20190324,維護(hù)前三項(xiàng),遍歷完成后輸出第三項(xiàng)。
代碼
#include <iostream>
using namespace std;
int main()
{long long a=1,b=1,c=1,t;for(int i=4;i<=20190324;i++){t=(a+b+c)%10000;a=b; b=c; c=t;}cout<<t;return 0;
}
結(jié)果
總結(jié)
藍(lán)橋杯的題目主要考的是數(shù)學(xué)和枚舉的能力。?